DAGs no Airflow

Introdução ao Apache Airflow em Python

Mike Metzger

Data Engineer

O que é um DAG?

DAG, ou Directed Acyclic Graph (Grafo Acíclico Direcionado):

  • Direcionado: há um fluxo que representa dependências entre componentes.
  • Acíclico: não faz loop/ciclo/repete.
  • Grafo: o conjunto de componentes.
  • Usado no Airflow, Apache Spark, dbt

DAG

1 https://en.m.wikipedia.org/wiki/Directed_acyclic_graph
Introdução ao Apache Airflow em Python

DAG no Airflow

No Airflow, DAGs:

  • São escritos em Python (podem usar componentes em outras linguagens).
  • São compostos por componentes (geralmente tarefas) a executar, como operators, sensors etc.
  • Têm dependências definidas explícita ou implicitamente.
    • Ex.: copiar o arquivo para o servidor antes de importar no banco.
Introdução ao Apache Airflow em Python

Definir um DAG

Exemplo de DAG:

from airflow import DAG

from datetime import datetime default_arguments = { 'owner': 'jdoe', 'email': '[email protected]', 'start_date': datetime(2020, 1, 20) }
with DAG('etl_workflow', default_args=default_arguments ) as etl_dag:
Introdução ao Apache Airflow em Python

Definir um DAG (antes do Airflow 2.x)

Exemplo de DAG:

from airflow import DAG

from datetime import datetime default_arguments = { 'owner': 'jdoe', 'email': '[email protected]', 'start_date': datetime(2020, 1, 20) }
etl_dag = DAG('etl_workflow', default_args=default_arguments )
Introdução ao Apache Airflow em Python

DAGs no terminal

Usando o airflow:

  • O CLI airflow tem vários subcomandos.
  • airflow -h mostra as descrições.
  • Muitos são ligados a DAGs.
  • airflow dags list lista todos os DAGs reconhecidos.
Introdução ao Apache Airflow em Python

Terminal vs. Python

Use o terminal para:

  • Iniciar processos do Airflow
  • Rodar DAGs/Tarefas manualmente
  • Ver logs do Airflow

Use Python para:

  • Criar um DAG
  • Editar propriedades do DAG
Introdução ao Apache Airflow em Python

Vamos praticar!

Introdução ao Apache Airflow em Python

Preparing Video For Download...