Criando um pipeline de produção

Introdução ao Apache Airflow em Python

Mike Metzger

Data Engineer

Rodando Dags e tasks

Para rodar uma tarefa específica no terminal:

airflow tasks test <dag_id> <task_id> <date>

Para rodar um Dag completo:

airflow dags trigger --logical-date <date> <dag_id>
Introdução ao Apache Airflow em Python

Lembrete de tasks

  • @task - Define uma função Python como tarefa do Airflow
  • @task.bash - Retorna o conteúdo de um comando bash como resultado da tarefa
  • @task.branch - Operador de ramificação para escolhas em tempo de execução no Dag
  • FileSensor - exige o argumento filepath e pode precisar de mode ou poke_interval
Introdução ao Apache Airflow em Python

Lembretes de template

  • Muitos objetos no Airflow aceitam templates
  • Alguns campos aceitam strings com template; outros, não
  • Para checar, use a documentação embutida:
  1. Abra o interpretador python3
  2. Importe as libs necessárias (ex.: from airflow.sdk import dag, task)
  3. No prompt, rode help(<objeto do Airflow>), ex.: help(task)
  4. Procure a linha template_fields. Ela lista os argumentos que aceitam templates.
Introdução ao Apache Airflow em Python

Exemplo de documentação de template

Terminal mostrando a saída do help do python3 para um objeto do Airflow

Saída do terminal destacando a linha template_fields no help do Airflow

Introdução ao Apache Airflow em Python

Trabalhando com Airflow

Ilustração de criar, agendar e monitorar workflows

Logo do Apache Airflow

Introdução ao Apache Airflow em Python

Vamos praticar!

Introdução ao Apache Airflow em Python

Preparing Video For Download...