Cases / Weather Analytics

Weather Analytics — Pipeline Diário de Clima

Dados da API Open-Meteo transformados em métricas climáticas diárias (série desde janeiro de 2021) e horárias para os 295 municípios de Santa Catarina, com dashboard interativo em produção.

FunçãoData Engineer (projeto autoral)
Período2025 – hoje
SituaçãoEm produção
Screenshot ampliado — Weather Analytics

O problema

Os dados brutos da API Open-Meteo chegam em granularidade horária, sem estrutura analítica — responder perguntas de tendência, anomalia térmica ou comparação entre municípios exigia reprocessar o histórico a cada consulta.

O objetivo foi construir um pipeline diário confiável, de custo previsível, que sustentasse um dashboard público consultado continuamente sem reprocessamento manual.

Decisões técnicas

  • Ingestão direta da API Open-Meteo para o BigQuery via script Python, rodado uma vez por dia — sem orquestrador nem banco intermediário, mais simples e mais barato para o volume atual.
  • Transformações em dbt, em camadas staging → intermediate → marts, com as marts materializadas como incremental para acumular o histórico completo sem reprocessar tudo a cada execução.
  • Dashboard próprio em FastAPI + ECharts (páginas Jinja2, frontend TypeScript/Vite): 13 rotas de página, sendo 6 relatórios consolidados, apoiadas no cache de resultados do próprio BigQuery.
  • Deploy via imagem Docker publicada no GHCR, com pull e recreate do container gerenciados pelo repositório de infraestrutura centralizado.

Resultado

O pipeline roda uma vez por dia (batch), alimentando marts de fatos diários (série desde jan/2021) e horários (desde jan/2024) para os 295 municípios de Santa Catarina.

O dashboard público cobre temperatura, precipitação, alertas, série horária e perfil por cidade, com todas as consultas resolvidas diretamente no BigQuery.

Acessar dashboard →