O Que É o Apache Airflow? O Orquestrador de Workflows Explicado
O Apache Airflow é uma plataforma open-source para criar, agendar e monitorar workflows de dados definidos como DAGs em Python.
O Apache Airflow é o orquestrador de referência da engenharia de dados. Ele permite definir workflows complexos de múltiplas etapas em Python, agendá-los e acompanhar sua execução, com retries embutidos, dependências e uma interface web que mostra o estado de cada task.
O que é o Airflow
O Airflow é uma plataforma de orquestração de workflows. Você escreve um DAG - um grafo acíclico dirigido de tasks - como código Python, e o Airflow agenda e executa as tasks na ordem de dependência, cuidando de retries, backfills e alertas. Ele é amplamente usado para rodar pipelines de ETL e ELT.
DAGs e tasks
Cada DAG do Airflow é um conjunto de tasks com dependências entre elas. Uma task pode executar uma query SQL, chamar uma API ou disparar um job do Spark. O Airflow descobre o que pode rodar em paralelo e o que precisa esperar, e reexecuta tasks que falharam de acordo com a sua política de retry.
Agendamento e monitoramento
O Airflow agenda DAGs em intervalos semelhantes a cron e registra cada execução em seu banco de dados de metadados, exibindo status, logs e durações em uma interface web. Operadores podem reexecutar uma task que falhou ou fazer backfill de um intervalo de datas sem reescrever código.
Airflow e CI/CD
O Airflow orquestra pipelines de dados, enquanto o CI/CD entrega o código dos DAGs que os definem. Uma boa configuração faz lint e testes unitários dos DAGs no CI - verificando se eles fazem parse e não têm ciclos - antes de implantá-los no Airflow.
steps:
- run: pip install apache-airflow
- run: python -c "import dags.my_pipeline" # import check
- run: pytest tests/dags # task unit testsNota Latchkey
Jobs de CI que validam DAGs instalam o Airflow e seus providers, o que é pesado. No Latchkey, fazer cache desse ambiente entre execuções torna os jobs de validação de DAG rápidos, e o auto-retry cobre falhas transitórias de índice de pacotes ou de download de providers durante a instalação.
Principais conclusões
- O Apache Airflow cria, agenda e monitora workflows de dados definidos como DAGs em Python.
- Ele executa tasks na ordem de dependência com retries embutidos, backfills e uma UI de monitoramento.
- O Airflow orquestra pipelines; o CI/CD entrega e testa o código dos DAGs que os definem.