Větvení

Úvod do Apache Airflow v Pythonu

Mike Metzger

Data Engineer

Větvení

  • Umožňuje podmíněnou logiku (tj. if → then pro úlohy)
  • Pomocí @task.branch

  • Spustí funkci Pythonu, která vrátí ID následující úlohy (nebo seznam ID)

Úvod do Apache Airflow v Pythonu

Příklad větvení

@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'
Úvod do Apache Airflow v Pythonu

Příklad větvení

@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
Úvod do Apache Airflow v Pythonu

Grafické zobrazení větvení

Pohled na graf Airflow s větvícím se DAGem a dvěma větvemi navazujících úloh

Úvod do Apache Airflow v Pythonu

Větvení – měsíce konce čtvrtletí

Pohled na graf Airflow se spuštěnými úlohami na konci čtvrtletí a přeskočenými měsíčními úlohami

Úvod do Apache Airflow v Pythonu

Větvení – běžné měsíce

Pohled na graf Airflow s pravidelně spuštěnými měsíčními úlohami a přeskočenými úlohami na konci čtvrtletí

Úvod do Apache Airflow v Pythonu

Datové proměnné

  • ds – Logické datum s pomlčkami YYYY-MM-DD
  • ds_nodash – Logické datum bez pomlček YYYYMMDD
  • prev_data_interval_start_success – Datum posledního úspěšného spuštění DAGu
  • Další proměnné – viz dokumentace Airflow
1 https://airflow.apache.org/docs/apache-airflow/stable/templates-ref.html#templates-variables
Úvod do Apache Airflow v Pythonu

Pojďme si procvičit!

Úvod do Apache Airflow v Pythonu

Preparing Video For Download...