Branching

Introductie tot Apache Airflow in Python

Mike Metzger

Data Engineer

Branching

  • Biedt voorwaardelijke logica (if -> then voor taken)
  • Met @task.branch

  • Voert een Python-functie uit die de volgende task-id (of lijst met ids) retourneert

Introductie tot Apache Airflow in Python

Branching-voorbeeld

@task.branch
def branch_task(logical_date):
  if int(logical_date.month) % 3 == 0:
    # Months 3 - March, 6 - June, 9 - September, 12 - December
    return 'end_of_quarter_task'
  else:
    # All other months
    return 'regular_monthly_task'
Introductie tot Apache Airflow in Python

Branching-voorbeeld

@task.branch
def branch_task(logical_date):
  if int(logical_date.month) % 3 == 0:
    # Months 3 - March, 6 - June, 9 - September, 12 - December
    return 'end_of_quarter_task'
  else:
    # All other months
    return 'regular_monthly_task'

start_task >> branch_task >> end_of_quarter_task >> end_of_quarter_task2
branch_task >> regular_monthly_task >> regular_monthly_task2
Introductie tot Apache Airflow in Python

Branching grafiekweergave

Airflow grafiekweergave van een vertakkende DAG met twee paden stroomafwaarts

Introductie tot Apache Airflow in Python

Branching Kwartaalmaanden

Airflow grafiekweergave met de kwartaal-eindtaken uitgevoerd en maandtaken overgeslagen

Introductie tot Apache Airflow in Python

Branching Reguliere maanden

Airflow grafiekweergave met de reguliere maandtaken uitgevoerd en kwartaal-eindtaken overgeslagen

Introductie tot Apache Airflow in Python

Datumvariabelen

  • ds - Logische datum met streepjes YYYY-MM-DD
  • ds_nodash - Logische datum zonder streepjes YYYYMMDD
  • prev_data_interval_start_success - Datum van laatste geslaagde DAG-run
  • En meer - zie de Airflow-variabelen documentatie
1 https://airflow.apache.org/docs/apache-airflow/stable/templates-ref.html#templates-variables
Introductie tot Apache Airflow in Python

Laten we oefenen!

Introductie tot Apache Airflow in Python

Preparing Video For Download...