Skip to content

enps2015/docker-data-science

Repository files navigation

logo

Docker Data Science Environment

Um ecossistema Dockerizado para estudos em Data Science, integrando ferramentas essenciais para análise de dados, visualização e monitoramento. Este ambiente foi projetado para ser simples, replicável e acessível, mesmo para usuários iniciantes.

Componentes do Sistema

  • Jupyter Notebook: Para análise de dados e machine learning.
  • PostgreSQL: Banco de dados relacional para armazenamento estruturado.
  • MetaBase: Ferramenta de BI open source para criação de dashboards.
  • Grafana + Prometheus: Para monitoramento e observabilidade.

Estrutura do Projeto

/docker-data-science
├── README.md                     # Documentação principal do projeto
├── docker-compose.yml            # Arquivo principal para orquestrar todos os serviços
├── jupyter/                      # Configuração do Jupyter Notebook
├── postgres/                     # Configuração do PostgreSQL
├── metabase/                     # Configuração do MetaBase
├── grafana/                      # Configuração do Grafana
├── prometheus/                   # Configuração do Prometheus
└── volumes/                      # Diretório centralizado para persistir dados

Como Usar

1. Pré-requisitos

Antes de iniciar, certifique-se de que você tem os seguintes softwares instalados:

  • Docker: Guia de Instalação
  • Docker Compose: Já incluído no Docker Desktop ou disponível separadamente.

2. Clone o Repositório

Clone o repositório para sua máquina local:

git clone https://github.com/enps2015/docker-data-science.git
cd docker-data-science

3. Inicie o Ambiente

Inicie todos os serviços com o comando:

docker-compose up -d

Nota: Isso pode levar alguns minutos na primeira vez, pois as imagens Docker serão baixadas.

4. Acesse as Interfaces

Após iniciar os serviços, você pode acessar as interfaces no navegador:


Setup Automatizado

Para facilitar a configuração inicial do ambiente, criei um script automatizado (setup.sh) que verifica as dependências necessárias (Docker e Docker Compose), clona o repositório (se necessário) e inicia todos os serviços.

Por que usar o script?

  • Simplicidade: O script elimina a necessidade de executar comandos manuais.
  • Confiabilidade: Ele garante que todas as etapas sejam seguidas corretamente.
  • Rapidez: Em poucos minutos, você terá o ambiente pronto para uso.

Como executar o script

  1. Certifique-se de que o git, docker e docker-compose estão instalados na sua máquina.
  2. Faça o download do script:
    wget https://github.com/enps2015/docker-data-science/blob/master/setup.sh
  3. Torne o script executável:
    chmod +x setup.sh
  4. Execute o script:
    ./setup.sh

Após a execução, o ambiente estará disponível nos seguintes endereços:


Configuração Passo a Passo

Jupyter Notebook

  1. Abra o navegador e acesse:

    http://localhost:8888
    
  2. Se solicitado, insira o token de acesso. Para encontrar o token:

    • Execute o seguinte comando no terminal:
      docker logs jupyter
    • Procure por uma linha como esta:
      http://127.0.0.1:8888/?token=abcdef1234567890abcdef1234567890abcdef1234
      
    • Copie o valor após token= e cole-o no navegador.
  3. Agora você pode criar e executar scripts Python no Jupyter Notebook.


PostgreSQL

O PostgreSQL já está configurado com um banco de dados inicial (data_science) e um usuário (user).

  1. Para testar a conexão, conecte-se ao PostgreSQL via terminal:

    docker exec -it postgres psql -U user -d data_science
  2. Execute uma consulta para verificar as tabelas:

    \dt
  3. Consulte os dados (se houver):

    SELECT * FROM sales;

MetaBase

  1. Abra o navegador e acesse:

    http://localhost:3000
    
  2. Na tela inicial, siga estas etapas:

    • Escolha "Let's get started".
    • Selecione "PostgreSQL" como o tipo de banco de dados.
    • Preencha os campos da conexão:
      • Nome: Data Science DB
      • Host: postgres (nome do serviço no docker-compose.yml)
      • Porta: 5432 (porta padrão do PostgreSQL)
      • Banco de Dados: data_science
      • Usuário: user
      • Senha: password
  3. Clique em "Save" ou "Test Connection" para confirmar a conexão.

  4. Após conectar, explore os dados criando dashboards no MetaBase.


Grafana

  1. Abra o navegador e acesse:

    http://localhost:3001
    
  2. Insira as credenciais padrão:

    • Usuário: admin
    • Senha: admin
  3. Altere a senha inicial quando solicitado.

  4. Conecte o Grafana ao Prometheus:

    • No menu lateral, clique em "Configuration" (engrenagem) > "Data Sources".
    • Clique em "Add data source".
    • Selecione "Prometheus".
    • Em "HTTP", insira a URL:
      http://prometheus:9090
      
    • Clique em "Save & Test" para confirmar a conexão.
  5. Importe dashboards pré-configurados ou crie seus próprios gráficos.


Prometheus

  1. Abra o navegador e acesse:

    http://localhost:9090
    
  2. Use o Prometheus para monitorar métricas dos contêineres. Por exemplo:

    • Pesquise por métricas como up para verificar o status dos serviços.

Testando o Ambiente

Para garantir que todos os componentes do ambiente estão conectados e funcionando corretamente, criei um guia prático com instruções passo a passo. Este guia inclui testes para verificar as conexões entre o Jupyter Notebook, PostgreSQL, MetaBase, Grafana e Prometheus.

Se você é novo no projeto ou quer ter certeza de que tudo está configurado corretamente, recomendamos que siga o tutorial disponível no arquivo TESTES.md.

Os testes são simples e fáceis de realizar, mesmo para iniciantes. Eles garantem que você possa explorar o ambiente com tranquilidade e confiança.

Convide seus neurônios a fazer os testes! 😉


Resolução de Problemas

1. Jupyter Notebook

  • Erro ao acessar o token:
    • Verifique os logs do contêiner:
      docker logs jupyter
    • Certifique-se de copiar o token correto.

2. PostgreSQL

  • Tabela não encontrada:
    • Certifique-se de que o arquivo init.sql existe e está correto.
    • Remova o volume persistente e reinicie os serviços:
      docker-compose down -v
      docker-compose up -d

3. Grafana

  • Erro ao acessar o Grafana:
    • Verifique se o diretório ./volumes/grafana tem permissões corretas:
      sudo chown -R 472:472 ./volumes/grafana
    • Reinicie os serviços:
      docker-compose down
      docker-compose up -d

Screenshots do Ambiente

Abaixo estão algumas capturas de tela das interfaces disponíveis no ambiente Dockerizado. Essas imagens dão uma ideia visual de como cada ferramenta funciona.

Jupyter Notebook

captura02

Uma interface interativa para análise de dados e machine learning.

MetaBase

captura03

Um dashboard intuitivo para visualização de dados do PostgreSQL.

Grafana

captura04

Gráficos dinâmicos para monitoramento e observabilidade.

Prometheus

captura05

Uma interface para consultar métricas coletadas pelo sistema.


Observação: Para acessar essas interfaces, siga as instruções no início deste documento.

Contribuições e Feedback

Se você encontrar problemas ou tiver sugestões, sinta-se à vontade para abrir uma issue ou pull request no GitHub.


Desenvolvido por:

LinkedIn Eric Pimentel

Que a Força dos Dados esteja com você! 🚀 ✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published