Menjadwalkan Dag

Pengantar Apache Airflow dengan Python

Mike Metzger

Data Engineer

Dag Run

  • Instans khusus dari workflow pada waktu tertentu
  • Dapat dijalankan manual atau via schedule
  • Menyimpan status untuk tiap workflow dan task di dalamnya
    • running
    • failed
    • success
1 https://airflow.apache.org/docs/stable/scheduler.html
Pengantar Apache Airflow dengan Python

Tampilan Dag Run

Halaman Airflow Dag Runs yang menampilkan run terbaru di semua Dag

Pengantar Apache Airflow dengan Python

Status Dag Run

Halaman Airflow Dag Runs menampilkan kolom status untuk tiap run

Pengantar Apache Airflow dengan Python

Detail schedule

Saat menjadwalkan Dag, beberapa atribut penting:

  • start_date - Tanggal/waktu awal menjadwalkan Dag run
  • end_date - Opsional; kapan berhenti membuat instans Dag baru
    • start_date dan end_date memakai objek datetime(year, month, day), contoh:
       from pendulum import datetime
       start_date=datetime(2026, 4, 10, tz="UTC")
      
Pengantar Apache Airflow dengan Python

Schedule

schedule menunjukkan:

  • Frekuensi penjadwalan Dag
  • Antara start_date dan end_date
  • Dapat didefinisikan dengan sintaks cron, preset bawaan, atau timedelta.
Pengantar Apache Airflow dengan Python

Sintaks cron

Diagram sintaks cron dengan lima kolom waktu dipisah spasi

  • Dari format Unix cron
  • 5 kolom dipisahkan spasi
  • * berarti setiap interval (mis. tiap menit, tiap hari)
  • Dapat berupa nilai dipisah koma dalam kolom untuk daftar nilai
Pengantar Apache Airflow dengan Python

Contoh cron

Diagram sintaks cron dengan lima kolom waktu dipisah spasi

0 12 * * *              # Jalan tiap hari pukul 12 siang
* * 25 2 *              # Jalan tiap menit pada 25 Februari
0,15,30,45 * * * *      # Jalan tiap 15 menit
Pengantar Apache Airflow dengan Python

Preset penjadwal Airflow

Preset:

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly

Setara cron:

  • 0 * * * *
  • 0 0 * * *
  • 0 0 * * 0
  • 0 0 1 * *
  • 0 0 1 1 *
1 https://airflow.apache.org/docs/stable/scheduler.html
Pengantar Apache Airflow dengan Python

Preset khusus

Airflow memiliki tiga preset schedule khusus:

  • None - Tidak pernah dijadwalkan, untuk Dag yang dipicu manual
  • @once - Hanya sekali
  • @continuous - Jalan segera setelah run sebelumnya selesai
Pengantar Apache Airflow dengan Python

timedelta

  • Juga bisa pakai pendulum.duration
  • duration(hours=6)
  • duration(minutes=30)
from pendulum import duration

@dag(
  dag_id="example_dag"
  schedule=duration(days=2)
)
Pengantar Apache Airflow dengan Python

Menerapkan jadwal

  • Jadwal didefinisikan di Dag
  • Gunakan parameter schedule:
@dag(
  dag_id="example_dag",
  schedule="0 12 * * *"
)
@dag(
  dag_id="example_dag",
  schedule="@daily"     
)
Pengantar Apache Airflow dengan Python

Masalah schedule

Saat menjadwalkan Dag, Airflow akan:

  • Satu interval penuh harus lewat dari start date
  • Menjadwalkan task pada start_date + schedule
'start_date': datetime(2026, 2, 25, tz="UTC")
'schedule': @daily

Waktu mulai paling awal untuk menjalankan Dag adalah 26 Februari 2026

Pengantar Apache Airflow dengan Python

Ayo berlatih!

Pengantar Apache Airflow dengan Python

Preparing Video For Download...