Verzweigung

Einführung in Apache Airflow mit Python

Mike Metzger

Data Engineer

Verzweigung

  • Bietet bedingte Logik (z. B. if -> then für Tasks)
  • Mit @task.branch

  • Führt eine Python-Funktion aus, die die nächste Task-ID (oder Liste von IDs) zurückgibt

Einführung in Apache Airflow mit Python

Beispiel: Verzweigung

@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'
Einführung in Apache Airflow mit Python

Beispiel: Verzweigung

@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
Einführung in Apache Airflow mit Python

Verzweigungs-Graph-Ansicht

Airflow-Graph-Ansicht eines verzweigenden DAGs mit zwei nachgelagerten Pfaden

Einführung in Apache Airflow mit Python

Verzweigung Quartalsend-Monate

Airflow-Graph-Ansicht mit ausgeführten Quartalsend-Aufgaben und übersprungenen Monatsaufgaben

Einführung in Apache Airflow mit Python

Verzweigung Reguläre Monate

Airflow-Graph-Ansicht mit ausgeführten regulären Monatsaufgaben und übersprungenen Quartalsend-Aufgaben

Einführung in Apache Airflow mit Python

Datumsvariablen

  • ds - Logisches Datum mit Bindestrichen YYYY-MM-DD
  • ds_nodash - Logisches Datum ohne Bindestriche YYYYMMDD
  • prev_data_interval_start_success - Datum des letzten erfolgreichen Dag-Laufs
  • Viele weitere – siehe Doku zu Airflow-Variablen
1 https://airflow.apache.org/docs/apache-airflow/stable/templates-ref.html#templates-variables
Einführung in Apache Airflow mit Python

Lass uns üben!

Einführung in Apache Airflow mit Python

Preparing Video For Download...