Skip to content

Repository files navigation

O Projeto

Este projeto consiste em criar um ambiente completo de envio e coleta de dados via streaming, faz tratamento nos dados e a visualização destes em um dashboard.

FORMULA 1


Objetivos

  • Criar um projeto completo utilizando o docker-compose
  • Visualizar um processo de streaming com Kafka funcionando
  • Utilizar o python como linguaguem para tratamento de dados
  • Visualizar o resultado em um dashboard
  • Testar o CHATGPT como suporte no desenvolvimento e resolução de projetos.

Inspiração

Este projeto teve seu inicio com o artigo publicado pelo Javier Granados, e seu projeto de coletar dados da F1 e fazer uso destes via streaming para visualizar em um dashboard no Grafana.

Fica aqui meus sinceros agradecimento ao Javier pela inspiração.


Habilidades

Trabalhando ingestão de dados via streaming


Pré-requisitos

1 - Docker Compose instalado em seu computador
2 - Navegador WEB, para visualizar e gerencias os seus comandos
3 - Um Editor de Texto de sua preferência.
4 - Muita curiosidade e vontade de aprender!

Subindo o ambiente

1 - Faça o clone deste repositório em seu computador
2 - Suba o ambiente no docker: docker compose -f "docker-compose.yml" up -d --build

Executar localmente

1 - Abra o Jupyter Lab em seu navegador para ter acessos aos notebooks já criados: http://localhost:8888
2 - Os dados coletados contém informações de diversos anos de corridas da F1, vamos utilizar apenas o ano de 2022. Para isto, execute o notebook F1.ipynb. Este deve gerar os dados de 2022 em um arquivo csv que vamos utilizar como fonte para o nosso processo de streaming. O Notebook F1_v2 faz a mesma coisa que o anterior, mas gerando 1 arquivo para cada ano de corrida disponível.
3 - Para monitorar o Kafka, temos o kafka-ui. Caso queira ver o processo de cadastro do cadastro e o Producer trabalhando acesse http://localhost:8080
4 - Execute o notebook que simula o produtor de conteudo do Kafka(Producer): Producer
8 - Em nosso projeto vamos guardar os dados no Postgres, para isto vamos usar o pgadmin para fazer a gestão do banco de dados. Acesso pelo link: http://localhost:80 . Possivelmente irá solicitar o login e senha, utilize admin/admin
9 - Configure a conexão ao banco do postgres.
hostname: postgres
port: 5432
username: admin
10 - Crie o banco de dados f1.
11 - Crie o Schema f1_schema.
12 - Execute o notebook TABELAS_F1
13 - Acesse o Grafana: http://localhost:3000 . Provavelmente irá pedir login e senha: admin/admin
14 - Faça o import do arquivo Json F1 no Grafana
15 - Execute o notebook Consumer
16 - Abra o Grafana novamente e visualize os graficos e dados sendo atualizados


Observação

Os Dados utilizados neste projeto foram coletados do kaggle
Estes dados são o resultado da coleta via API do site http://ergast.com/mrd/


Cenários Futuros

Com base neste projeto, é possivel fazer um estudo analitico sobre series temporais.
Adaptar este projeto para visualizar o resultado em outras ferramentas graficas.
Evoluir este projeto afim de coletar os dados em tempo real das corridas de F1.
Adaptar para acompanhar outros campeonatos.


CHATGPT

O uso do ChatGPT neste projeto foi bastante útil para iniciar a criação do arquivo do docker compose, porém a solução apresentada para o Kafka não funcionou, sendo necessário pesquisar e rever as configurações.
o ChatGPT é um ótimo aliado para desenvolvimento de software e na resoluçao de problemas, porém, a versão gratuita apresenta algumas falhas e requer um pouco mais de pesquisa. Ressalva que adianta bastante o caminho de pesquisa e codificação.


Ferramentas Utilizadas

Visual Studio
Visual Studio
Docker Compose
JupyterLab
Python
Kafka
Postgre
Postgre

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages