Skip to content

ODD-CD/end-to-end-data-engineering-databricks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

End-to-End Data Engineering Pipeline — Databricks & S3

Visão Geral

Este projeto demonstra uma pipeline completa de engenharia de dados end-to-end, construída no Databricks, utilizando Amazon S3 como Data Lake e Unity Catalog com tabelas Delta como camada curada para consumo analítico.

A solução foi desenhada para suportar dois modos de carga:

  • Full Load (carga inicial)
  • Incremental Load (carga recorrente e orquestrada)

Essa separação reflete práticas reais de ambientes produtivos, garantindo escalabilidade, controle operacional e facilidade de manutenção.


Arquitetura da Solução

A arquitetura segue um fluxo claro de dados, desde a origem até o consumo analítico.

Fluxo geral:

Data Sources → Amazon S3 (Raw Zone) → Databricks Processing → Unity Catalog (Delta) → Databricks Dashboard → Consumers

O diagrama completo da arquitetura pode ser encontrado em:

architecture/pipeline_architecture.png

Camadas da Pipeline

1. Data Sources

Os dados de origem representam entidades do domínio FMCG:

  • Customers
  • Products
  • Gross Prices
  • Orders

2. Amazon S3 — Raw / Landing Zone

O Amazon S3 é utilizado como Data Lake, armazenando os dados brutos que alimentam tanto a carga inicial quanto as cargas incrementais.

Essa camada mantém os dados em formato raw, sem transformações, servindo como ponto único de entrada para a pipeline.


Estratégias de Carga

Full Load (Carga Inicial)

A carga full é responsável pelo bootstrap inicial do ambiente analítico.

Características:

  • Executada sob demanda
  • Utiliza notebooks do Databricks Workspace
  • Cria e popula tabelas Delta no Unity Catalog
  • Estabelece a base histórica dos dados

Essa etapa normalmente é executada apenas uma vez ou em cenários de reprocessamento completo.


Incremental Load (Carga Incremental)

A carga incremental é responsável pela atualização recorrente dos dados.

Características:

  • Orquestrada via Databricks Jobs
  • Executada de forma agendada (diária)
  • Processa apenas novos ou alterados registros
  • Respeita dependências entre dimensões e fato

O Job incremental segue a seguinte ordem lógica:

  1. Processamento das dimensões (customers → products → prices)
  2. Processamento incremental da tabela fato (orders)

A definição detalhada do Job pode ser encontrada em:

orchestration/databricks_job.md

Databricks Workspace

O processamento de dados ocorre no Databricks Workspace, organizado em camadas claras:

  • Setup Layer: configuração de catálogo, schemas e utilidades
  • Dimension Processing: tratamento e atualização das tabelas dimensionais
  • Fact Processing: carga full e incremental da tabela fato

Essa organização facilita manutenção, leitura do código e evolução da pipeline.


Unity Catalog & Delta Tables

Os dados transformados e limpos são persistidos no Unity Catalog, utilizando tabelas Delta.

Tabelas principais:

  • dim_customers
  • dim_products
  • dim_prices
  • fact_orders

Essa camada representa a fonte única de verdade para consumo analítico.


Analytics & Consumption

Os dados curados podem ser consumidos por:

  • Ferramentas de BI
  • Consultas SQL analíticas
  • Usuários downstream

Essa separação garante que consumidores não acessem dados brutos ou intermediários. O projeto também inclui um dashboard nativo do Databricks construído sobre Delta tables selecionadas para consumo analítico. Uma exportação em PDF está disponível na pasta dashboards/ para referência.


Principais Conceitos Demonstrados

  • Arquitetura de dados end-to-end
  • Separação entre full load e incremental load
  • Orquestração com Databricks Jobs
  • Processamento baseado em dependências
  • Uso de Delta Lake e Unity Catalog
  • Boas práticas de organização de pipelines

Observações Finais

Este projeto foi desenvolvido com foco em boas práticas de engenharia de dados, simulando um cenário real de produção, desde a ingestão até o consumo analítico.

Ele faz parte de um portfólio voltado para posições de Data Engineer.

About

End-to-end data engineering pipeline using Databricks, Amazon S3, Delta Lake and Unity Catalog, with full and incremental loads.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors