Skip to content

smalldatalabbr/lakeflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LakeFlow

Pipeline de Engenharia de Dados em arquitetura Lakehouse com ingestão orquestrada e processamento em PySpark.

Author License Status

Python PySpark Airflow Docker

LakeFlow


Visão Geral

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.


Problema Técnico

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.


Abordagem da Solução

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.


Tecnologias Utilizadas

  • Python
  • PySpark
  • Apache Airflow
  • Docker
  • Parquet

Pipeline de Dados

O pipeline da LakeFlow é composto por quatro camadas principais.

Landing (Raw)

  • 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.


Bronze

  • 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.


Silver

  • 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.


Gold

  • 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.


Estrutura do Projeto

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.

Resultados

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

Como executar

Ambiente virtual

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Variáveis de Ambiente

O 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/data

Descrição

OPENWEATHER_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.


Status

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.


Próximos Passos

  • 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

Disclaimer

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.


Explore outros projetos do Small Data Lab

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.

Onde me encontrar

Portfólio | LinkedIn | Email


Este repositório é licenciado sob a MIT License.

About

Pipeline de engenharia de dados end-to-end com arquitetura lakehouse em camadas e rastreabilidade de execução.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors