DEV Community

Felipe Wendel
Felipe Wendel

Posted on

🚀 Projeto ETL em Python com dados públicos de clima + MySQL na nuvem

Nas últimas semanas, eu quis transformar uma ideia simples em algo real: construir um pipeline ETL completo, enxuto e pronto para ser compartilhado. O resultado foi um projeto em Python que extrai dados públicos de clima em tempo real, padroniza esses dados e grava tudo em um banco relacional (MySQL).

A arquitetura ficou bem direta e modular:

🔹 1) Extract

No módulo de extração eu consumo a API pública da OpenWeatherMap.

Esse estágio já nasce preparado para produção:

✅ timeout definido

✅ tentativas de retry

✅ tratamento de erros (rate limit, API key inválida, cidade inexistente)

✅ suporte a múltiplas cidades de uma vez

🔹 2) Transform

Aqui o objetivo foi padronizar e enriquecer o dado bruto.

Eu normalizei campos como temperatura, umidade, vento e pressão, e adicionei classificações de temperatura e umidade para facilitar análises futuras.

Exemplo: Frio, Moderado, Quente; Seco, Normal, Úmido.

O resultado é um dataset limpo e pronto para consumo analítico.

🔹 3) Load

A camada de carregamento usa SQLAlchemy para persistir os dados em banco relacional.

Inicialmente SQLite para testes locais, mas o projeto já está preparado para MySQL na nuvem (AWS RDS, Google Cloud SQL, Azure).

Tudo transacional, com histórico completo de execução.

✅ Pontos que tornam o projeto realmente profissional:

Código modular e escalável

Tratamento robusto de erros

Logging detalhado

Documentação completa

Pronto para executar localmente ou em cloud

Pipeline executável com um único comando

📌 Fluxo principal do projeto:

etl_pipeline.py → orquestra o ETL

extract.py → extrai dados

transform.py → transforma e enriquece

load.py → carrega no banco

config.py → centraliza configuração

💡 O que aprendi com esse projeto:

Mesmo um ETL simples pode ser estruturado com boas práticas de engenharia de dados, modularidade e padrões de produção. O diferencial está em projetar pensando em escalabilidade, rastreabilidade e facilidade de manutenção — exatamente o que esse pipeline entrega.




















Top comments (0)