Förgrening

Introduktion till Apache Airflow i Python

Mike Metzger

Data Engineer

Förgrening

  • Tillhandahåller villkorsstyrd logik (dvs. om -> då för uppgifter)
  • Används med @task.branch

  • Kör en Python-funktion som returnerar nästa uppgifts-id (eller lista med id:n)

Introduktion till Apache Airflow i Python

Förgreningsexempel

@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'
Introduktion till Apache Airflow i Python

Förgreningsexempel

@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
Introduktion till Apache Airflow i Python

Grafvy för förgrening

Airflow-grafvy över en förgrenings-DAG med två nedströms uppgiftsvägar

Introduktion till Apache Airflow i Python

Förgrening – kvartalsslutsmånader

Airflow-grafvy där kvartalsslutsuppgifterna körs och månadsuppgifterna hoppas över

Introduktion till Apache Airflow i Python

Förgrening – vanliga månader

Airflow-grafvy där vanliga månadsuppgifterna körs och kvartalsslutsuppgifterna hoppas över

Introduktion till Apache Airflow i Python

Datumvariabler

  • ds – Logiskt datum med bindestreck ÅÅÅÅ-MM-DD
  • ds_nodash – Logiskt datum utan bindestreck ÅÅÅÅMMDD
  • prev_data_interval_start_success – Datum för senaste lyckade DAG-körning
  • Många fler – se Airflows variabeldokumentation
1 https://airflow.apache.org/docs/apache-airflow/stable/templates-ref.html#templates-variables
Introduktion till Apache Airflow i Python

Nu kör vi en övning!

Introduktion till Apache Airflow i Python

Preparing Video For Download...