#4 Orquestração de Pipelines com Airflow
- JP

- 13 de set.
- 5 min de leitura
Série: Trilha prática para se tornar Engenheiro de Dados – Capítulo 4
Pré-requisitos
Antes de começar, você deve ter rodado os capítulos anteriores (especialmente o Capítulo 3, onde criamos um mini DW com SQLite).
Prepare seu ambiente:
pip install apache-airflow pandas requests sqlalchemyObservação: no mundo real, o Airflow é configurado com Postgres/MySQL como metastore e Celery/Kubernetes como executor. Aqui vamos simular localmente com SQLite, apenas para aprender.
Não se preocupe: vamos usar apenas exemplos simples, que rodam localmente.

Orquestração de Pipelines com Airflow: Por que orquestrar pipelines?
Até aqui, criamos scripts que:
Extraem dados de uma API.
Transformam em tabelas organizadas.
Carregam em um DW local.
Mas… e se:
Precisamos rodar esse pipeline todos os dias às 8h?
A etapa de transformação só pode começar quando a extração terminar?
Queremos alertar se algo falhar?
👉 É aqui que entra a orquestração: organizar a execução de tarefas, suas dependências e monitorar tudo de forma confiável.
Conceitos básicos do Airflow
DAG (Directed Acyclic Graph) : conjunto de tarefas organizadas em fluxo (grafo).
Operadores : definem o que cada tarefa faz (PythonOperator, BashOperator, etc.).
Scheduler : decide quando rodar cada DAG.
Executor : executa de fato as tarefas.
UI Web : painel onde monitoramos execuções, falhas e históricos.
👉 Pense em uma linha de produção: cada máquina (tarefa) faz algo, e a esteira (DAG) conecta todas as etapas.
Ferramentas do mercado
Além do Apache Airflow, outras soluções de orquestração ganharam força:
Prefect → moderno, com sintaxe Python nativa e foco em usabilidade.
Dagster → orientado a “assets” (ativos de dados).
Luigi → pioneiro, mas menos popular atualmente.
👉 O Airflow ainda é o mais usado no mercado, principalmente em empresas que trabalham com AWS, GCP e Azure. Na AWS já existe este serviço gerenciado chamada MWAA.
Exemplo prático – Criando sua primeira DAG
Vamos simular uma Orquestração de Pipelines com Airflow:
Extrair dados de produtos da API DummyJSON.
Transformar em DataFrame organizado.
Carregar no SQLite (mini DW local).
dag_produtos.py
▶️ Como executar
Inicie o Airflow
Acesse o terminal e digite o seguinte comando:
airflow standaloneIsso cria a pasta de trabalho padrão (AIRFLOW_HOME), o metastore SQLite e sobe webserver + scheduler.
Copiando a o arquivo para a pasta Dags/ do Ariflow (caso não saiba onde fica a pasta, veja seção completa mais abaixo por SO e volte aqui depois)
Copie dag_produtos.py para a pasta dags/ do seu AIRFLOW_HOME.
Abra a UI
Acesse o seu navegador e digite a URL abaixo:
A página de login será aberta como mostra a imagem abaixo:

🔑 Login na UI (usuário e senha)
Usuário: admin
Senha: gerada automaticamente e mostrada no console da primeira vez que você roda airflow standalone.
Se não apareceu a senha no console, abra o arquivo simple_auth_manager_passwords.json.generated conforme abaixo:
# macOS/Linux
cat ~/airflow/simple_auth_manager_passwords.json.generated
# Windows (PowerShell)
type $HOME\airflow\simple_auth_manager_passwords.json.generatedConteúdo típico:
[
{ "username": "admin", "password": "a8f9x2d1" }
]Executando e Validando o resultado da DAG
Após acessar a UI do Airflow, vamos executar a DAG. Na UI conforme a imagem abaixo, clique no canto esquerdo na opção Dags e procure pela DAG criada anteriormente digitando no campo de pesquisa pipeline_produtos.

Executando a DAG
Clique em cima da DAG conforme imagem acima e você será redirecionado para a tela seguinte:

Agora clique no botão azul Trigger e confirme novamente no pop-up a seguir e veja a mágica acontecer!

Após finalizar a execução, a imagem abaixo com os resultados irá aparecer com status Success. Isso mostra que a DAG e as suas respectivas Tasks rodaram fino!

Validando o resultado após a execução da DAG
1) Pela UI
Graph View → tarefas verdes ✅.
Clique em cada Task ID → Logs → procure mensagens de sucesso.
2) Pelos arquivos
Acesse os arquivos abaixo e veja como estão preenchidos:
/tmp/produtos.csv
/tmp/produtos_transformados.csv
/tmp/meu_dw.db (o “DW” local)
3) Pela consulta no SQLite
Acesse o terminal e execute o comando abaixo:
sqlite3 /tmp/meu_dw.db/tmp/meu_dw.db é o caminho para o DW criado pela Task Carregar, lembra?
Em Seguida, no console, execute o comando abaixo:
.headers on
.mode column
.tables -- deve listar 'produtos'
SELECT category, AVG(price) AS preco_medio, AVG(rating) AS avaliacao_media
FROM produtos
GROUP BY category
ORDER BY preco_medio DESC;Saída esperada

Pronto, você acaba de criar uma pipeline usando Airflow! Pronto para a próxima?
📁 Onde fica a pasta de DAGs? (por sistema)
A) Conceito-chave: AIRFLOW_HOME
O Airflow usa a variável de ambiente AIRFLOW_HOME para saber onde ficam dags/, logs/ e plugins/.Se não estiver definida, o padrão é ~/airflow (home do usuário).
Verifique o valor da variável:
macOS/Linux (bash/zsh):
echo $AIRFLOW_HOMEWindows (PowerShell):
echo $env:AIRFLOW_HOMESe vier vazio, assuma o padrão ~/airflow (ou C:\Users\SeuUsuario\airflow no Windows).
A pasta de DAGs estará em:
$AIRFLOW_HOME/dags/
B) macOS (e Linux)
1. Descobrir AIRFLOW_HOME
echo $AIRFLOW_HOMESe vazio, o padrão é:
ls -la ~/airflow2. Ver a pasta de DAGs
ls -la ~/airflow/dags3. Copiar a DAG
mv /caminho/para/dag_produtos.py ~/airflow/dags/4. Dica extra (caso tenha alterado AIRFLOW_HOME)
Se você configurou um outro caminho em ~/.bashrc ou ~/.zshrc:
export AIRFLOW_HOME="$HOME/meu_airflow"
source ~/.zshrc # ou ~/.bashrc
echo $AIRFLOW_HOME
ls -la $AIRFLOW_HOME/dagsC) Windows
1. Descobrir AIRFLOW_HOME
PowerShell:
echo $env:AIRFLOW_HOMESe vazio, use:
ls $HOME\airflow(Em geral: C:\Users\SeuUsuario\airflow)
2. Ver a pasta de DAGs
ls $HOME\airflow\dags3. Copiar a DAG
Copy-Item -Path "C:\caminho\para\dag_produtos.py" -Destination "$HOME\airflow\dags\"4. (Opcional) Definir AIRFLOW_HOME permanente
No PowerShell profile ou variáveis de ambiente do sistema:
[Environment]::SetEnvironmentVariable("AIRFLOW_HOME", "C:\AirflowHome", "User")Depois feche e reabra o terminal.
Leituras recomendadas
Conclusão
Neste capítulo você aprendeu que:
Você orquestrou um pipeline real: Extrair → Transformar → Carregar.
Usou o Airflow, um componente bastante usado em pipelines de Dados
O que vem a seguir?
👉 No Capítulo 5: Apache Spark e processamento distribuído — por que Spark é tão usado e como pensar em paralelismo (com simulações locais).
Gostou desse capítulo?
👉 Assine a newsletter Coffee & Tips e receba os próximos capítulos direto no seu e-mail.
👉 Pré-venda exclusiva
Em breve também vamos lançar um E-Book avançado, com tutoriais em Spark, Airflow, Redshift, tudo para você se tornar um Engenheiro de Dados!
Cadastre-se agora na lista de pré-venda e garanta:
Acesso antecipado antes do lançamento oficial 🚀
Benefícios exclusivos para inscritos 💡
Conteúdo extra que não estará disponível gratuitamente
Fique ligado!



Comentários