ETL/ELT Moderno com Apache Airflow e GitHub Actions: Guia Completo
Introdução à Arquitetura Moderna de Dados

Diferenças Fundamentais ETL vs ELT
- ETL (Extract-Transform-Load): Transformações ocorrem antes do carregamento em sistemas de destino513. Ideal para dados estruturados e ambientes com restrições de compliance.
- ELT (Extract-Load-Transform): Transformações executadas dentro do data warehouse/lake614. Dominante em arquiteturas cloud-native com processamento massivo paralelo (MPP).
Exemplo Matemático de Custo Computacional:
$C_{ETL} = \sum_{i=1}^{n} (E_i + T_i) + L \\
C_{ELT} = E + L + \sum_{i=1}^{n} T_i \times \frac{1}{c}$
Onde $c$ = capacidade paralela do sistema alvo14
Repositórios de referência para o projeto
https://github.com/afonsolelis/etl_completa_airflow
https://github.com/afonsolelis/etl_dataops
Componentes do Apache Airflow
- Scheduler: Orquestrador central com algoritmo Breadth-First Search para execução de DAGs11
- Executor: Gerencia workers (Local, Celery, Kubernetes)12
- Webserver: Interface com visualização de Gantt Chart e logs3
- Metadata Database: PostgreSQL/MySQL para armazenar estados e histórico4
Construção de Pipeline Completo
Estrutura do Projeto
etl-moderno/
├── dags/
│ └── processamento_dados.py
├── plugins/
│ └── custom_operators.py
├── scripts/
│ ├── data_validation.py
│ └── error_handler.py
├── requirements.txt
├── docker-compose.yml
└── .github/
└── workflows/
└── airflow_deploy.yml