Nesta documentação, vou detalhar o processo que segui para criar um pipeline automatizado de Extração, Transformação e Carregamento (ETL) de dados da Lotofácil para a PotatoCore, como parte do meu desafio para me tornar um engenheiro de dados júnior.
Escolha de Números - Em um volante da Lotofácil, há um total de 25 números disponíveis, numerados de 01 a 25. O jogador deve escolher de 15 a 20 números entre esses 25.
Apostas - Você pode fazer uma aposta simples selecionando 15 números, mas também pode aumentar suas chances de ganhar fazendo uma aposta com mais números, até o limite de 20.
Probabilidades - As chances de ganhar na Lotofácil variam de acordo com a quantidade de números selecionados. Quanto mais números você escolher, maiores serão as chances de acertar, mas o custo da aposta também será mais alto.
O projeto consiste em um pipeline automatizado que realiza as seguintes etapas:
- Extração de Dados: Os dados da Lotofácil são extraídos de uma planilha Excel fornecida.
- Limpeza e Transformação: Os dados extraídos são limpos e transformados para garantir consistência e prepará-los para análise.
- Modelagem de Dados: É criado um esquema de banco de dados para armazenar os dados transformados.
- Integração com o Banco de Dados: Os dados são carregados no banco de dados da PotatoCore.
Para extrair os dados da Lotofácil da planilha Excel fornecida, desenvolvi um script em Python utilizando a biblioteca openpyxl. O script realiza o seguinte:
- Abre a planilha Excel (Lotofacil.xlsx) fornecida.
- Identifica a folha de cálculo relevante na planilha.
- Extrai os dados necessários, como números sorteados, datas e outros campos relevantes.
Para limpar e transformar os dados extraídos, criei um conjunto de transformações em Python utilizando a biblioteca pandas. O processo incluiu as seguintes etapas:
- Remoção de duplicatas e registros inválidos.
- Padronização de formatos, garantindo que datas, números e outros campos sigam um formato consistente.
- Tratamento de valores nulos ou ausentes, preenchendo-os quando apropriado.
- Identificação de tendências ou padrões nos números sorteados, gerando métricas relevantes
Para armazenar os dados transformados, criei um esquema de banco de dados que incluiu a definição de tabelas, relacionamentos entre elas, índices e chaves primárias/estrangeiras. A estrutura do banco de dados foi projetada para acomodar os dados da Lotofácil de forma organizada e eficiente.
Para estabelecer a integração com o banco de dados da PotatoCore, criei um script em Python que:
- Estabelece uma conexão com o banco de dados usando a biblioteca apropriada (por exemplo, SQLAlchemy para bancos de dados SQL).
- Carrega os dados transformados no banco de dados, garantindo que o esquema da tabela corresponda à estrutura dos dados da Lotofácil.
Linguagem de programação: Python Bibliotecas: pandas, requests, seaborn, matplotlib e psycopg2
Este projeto representou um desafio gratificante para se tornar um engenheiro de dados júnior na DNC. Agora, temos um pipeline de ETL automatizado que permite à equipe da PotatoCore acessar facilmente os dados da Lotofácil para análise, economizando tempo e eliminando erros manuais.
Para mais informações, detalhes técnicos ou perguntas, sinta-se à vontade para consultar o repositório GitHub ou entrar em contato comigo por meio das informações de contato fornecidas no repositório