Pipeline de Engenharia de Dados em arquitetura Lakehouse com ingestão orquestrada e processamento em PySpark.
A LakeFlow é uma Proof of Concept (POC) de Engenharia de Dados que demonstra a construção de um pipeline analítico end-to-end em arquitetura Lakehouse, com ingestão periódica, processamento distribuído e organização de dados em camadas.
O projeto foi desenhado como um template de engenharia de dados, priorizando:
- separação clara entre camadas de maturidade do dado
- rastreabilidade entre ingestão e consumo analítico
- execução controlada e reproduzível
- organização modular das etapas do pipeline
Para viabilizar ingestões contínuas e reprodutíveis, o pipeline utiliza dados meteorológicos públicos obtidos via API. Essa escolha permite exercitar padrões reais de ingestão, transformação e versionamento de dados sem dependência de fontes proprietárias.
Pipelines de dados frequentemente surgem de forma incremental e reativa, focados apenas na disponibilização rápida de dados para consumo.
Esse processo costuma gerar problemas estruturais como:
- ingestões sem controle de execução ou repetição
- acoplamento entre etapas de extração e transformação
- ausência de rastreabilidade entre dado bruto e dado consumido
- dificuldade para reprocessar dados históricos
- falta de separação entre níveis de maturidade do dado
Essas limitações tornam pipelines difíceis de manter, auditar ou escalar.
A LakeFlow endereça esse cenário adotando uma arquitetura em camadas inspirada em Lakehouse, com responsabilidades claras para cada estágio do pipeline e execução controlada por run.
A POC implementa um pipeline de Engenharia de Dados totalmente orquestrado, executado em ambiente local e estruturado para permitir evolução incremental.
O fluxo contempla:
- ingestão periódica de dados meteorológicos via API pública
- persistência inicial em camada Landing (raw)
- processamento distribuído com PySpark
- organização dos dados em camadas de maturidade
- persistência em formato Parquet
- controle de execução por run_id
- orquestração das etapas com Apache Airflow executando em Docker
Essa arquitetura permite executar o pipeline repetidamente com segurança, mantendo isolamento entre execuções e rastreabilidade entre as etapas de processamento.
- Python
- PySpark
- Apache Airflow
- Docker
- Parquet
O pipeline da LakeFlow é composto por quatro camadas principais.
- ingestão de dados via API OpenWeather
- persistência do payload bruto em JSON
- registro de metadados de execução (
run_id, timestamp e cidade)
Essa camada funciona como evidência da ingestão original e ponto seguro para reprocessamento.
- leitura dos dados brutos
- padronização de schema
- tipagem explícita dos campos
- flatten controlado das estruturas
Os dados passam a ser persistidos em formato Parquet.
- aplicação de regras básicas de qualidade
- deduplicação baseada em
(city_id, source_unix_dt) - normalização de campos
- enriquecimento temporal
Essa camada representa o dado limpo e confiável para transformação analítica.
- agregações estáveis por cidade e data
- consolidação de métricas derivadas
- geração de datasets prontos para consumo analítico
Essa camada representa o dado pronto para análise ou uso downstream.
lakeflow/
├── airflow/
│ ├── dags/
│ │ └── lakeflow_v1.py
│ ├── docker-compose.yaml
│ └── .env
│
├── jobs/
│ ├── extract/
│ │ └── extract_api.py
│ ├── bronze/
│ │ └── build_bronze.py
│ ├── silver/
│ │ └── build_silver.py
│ └── gold/
│ └── build_gold.py
│
├── config/
│ ├── paths.py
│ └── settings.py
│
├── data/
│ ├── landing/
│ ├── bronze/
│ ├── silver/
│ └── gold/
│
├── references/
│ └── lakeflow-results.png
│
├── requirements.txt
└── README.md
Cada diretório em jobs/ representa uma unidade operacional independente, com responsabilidade única dentro do pipeline.
A LakeFlow demonstra como pipelines de dados podem ser estruturados para garantir reprodutibilidade, rastreabilidade e organização arquitetural.
A POC entrega:
- pipeline de ingestão automatizado via API
- processamento distribuído com PySpark
- organização dos dados em camadas Lakehouse
- orquestração com Apache Airflow
- persistência de dados em Parquet
- isolamento de execuções via
run_id
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtO pipeline utiliza variáveis de ambiente para parametrizar ingestão e persistência de dados.
Exemplo de configuração:
OPENWEATHER_API_KEY=sua_chave_aqui
CITIES=SAO_PAULO,BELO_HORIZONTE
BASE_DATA_DIR=/opt/lakeflow/dataOPENWEATHER_API_KEY Chave de acesso à API OpenWeather utilizada na etapa de ingestão.
CITIES Lista de cidades consultadas na coleta de dados.
BASE_DATA_DIR Diretório base onde os dados das camadas Landing, Bronze, Silver e Gold são persistidos.
Pipeline end-to-end funcional em ambiente local.
A POC encontra-se em fase de expansão de volume histórico e preparação para consumo analítico.
- execução contínua para geração de histórico de dados
- consolidação da camada Gold
- consumo analítico via Spark SQL
- validação de execução prolongada do pipeline
- adaptação da arquitetura para ambiente distribuído
Esta POC foi desenvolvida exclusivamente para fins demonstrativos.
Os dados utilizados são públicos e não contêm informações pessoais ou sensíveis. O projeto não deve ser utilizado diretamente em ambientes produtivos.
Este projeto faz parte do Small Data Lab, um laboratório técnico dedicado à experimentação aplicada em dados, analytics e sistemas de IA.
Explore também outras POCs do laboratório:
- RetailLens BI — Camada analítica BI-ready para diagnóstico operacional em e-commerce.
- DelayImpact — Análise que investiga o impacto de atrasos logísticos na satisfação do cliente.
- CampaignSense — CRM Analytics para priorização de campanhas baseada em propensão e ROI.
- FraudWatch — Sistema de decisão antifraude que transforma scores de ML em políticas operacionais auditáveis.
- DocLens — Chatbot RAG com guardrails e testes adversariais para governança de LLMs.
Este repositório é licenciado sob a MIT License.
