Branching

Pengantar Apache Airflow dengan Python

Mike Metzger

Data Engineer

Branching

  • Menyediakan logika kondisional (mis., if -> then untuk tugas)
  • Menggunakan @task.branch

  • Menjalankan fungsi Python yang mengembalikan id tugas berikutnya (atau daftar id) yang diikuti

Pengantar Apache Airflow dengan Python

Contoh branching

@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'
Pengantar Apache Airflow dengan Python

Contoh branching

@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
Pengantar Apache Airflow dengan Python

Tampilan graf branching

Tampilan graf Airflow dari Dag bercabang dengan dua jalur tugas downstream

Pengantar Apache Airflow dengan Python

Branching Bulan akhir kuartal

Tampilan graf Airflow dengan tugas akhir kuartal berjalan dan tugas bulanan dilewati

Pengantar Apache Airflow dengan Python

Branching Bulan reguler

Tampilan graf Airflow dengan tugas bulanan reguler berjalan dan tugas akhir kuartal dilewati

Pengantar Apache Airflow dengan Python

Variabel tanggal

  • ds - Tanggal logis dengan tanda hubung YYYY-MM-DD
  • ds_nodash - Tanggal logis tanpa tanda hubung YYYYMMDD
  • prev_data_interval_start_success - Tanggal Dag terakhir yang sukses
  • Lainnya - lihat dokumentasi variabel Airflow
1 https://airflow.apache.org/docs/apache-airflow/stable/templates-ref.html#templates-variables
Pengantar Apache Airflow dengan Python

Ayo berlatih!

Pengantar Apache Airflow dengan Python

Preparing Video For Download...