DAGs planen

Einführung in Apache Airflow mit Python

Mike Metzger

Data Engineer

Dag Runs

  • Eine konkrete Ausführung eines Workflows zu einem Zeitpunkt
  • Manuell oder per schedule startbar
  • Hält Status je Workflow und Task
    • running
    • failed
    • success
1 https://airflow.apache.org/docs/stable/scheduler.html
Einführung in Apache Airflow mit Python

Dag Runs-Ansicht

Airflow-Seite „Dag Runs“ mit letzten Runs aller DAGs

Einführung in Apache Airflow mit Python

Dag Runs-Status

Airflow-Seite „Dag Runs“ mit Status-Spalte je Run

Einführung in Apache Airflow mit Python

Schedule-Details

Beim Planen eines DAGs sind wichtig:

  • start_date – Datum/Uhrzeit für den ersten DAG-Run
  • end_date – Optionales Ende für neue DAG-Instanzen
    • start_date und end_date nutzen ein datetime(year, month, day)-Objekt, z. B.:
       from pendulum import datetime
       start_date=datetime(2026, 4, 10, tz="UTC")
      
Einführung in Apache Airflow mit Python

Schedule

schedule steht für:

  • Wie oft der DAG geplant wird
  • Zwischen start_date und end_date
  • Definierbar via cron-Syntax, Presets oder timedeltas
Einführung in Apache Airflow mit Python

Cron-Syntax

Diagramm der Cron-Syntax mit fünf durch Leerzeichen getrennten Zeitfeldern

  • Aus dem Unix-Cron-Format
  • 5 Felder, durch Leerzeichen getrennt
  • * steht für jedes Intervall (z. B. jede Minute, jeden Tag)
  • Felder können kommagetrennte Listen enthalten
Einführung in Apache Airflow mit Python

Cron-Beispiele

Diagramm der Cron-Syntax mit fünf durch Leerzeichen getrennten Zeitfeldern

0 12 * * *              # Täglich um 12:00 Uhr
* * 25 2 *              # Jede Minute am 25. Februar
0,15,30,45 * * * *      # Alle 15 Minuten
Einführung in Apache Airflow mit Python

Airflow-Scheduler-Presets

Presets:

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

Cron-Äquivalent:

  • 0 * * * *
  • 0 0 * * *
  • 0 0 * * 0
  • 0 0 1 * *
  • 0 0 1 1 *
1 https://airflow.apache.org/docs/stable/scheduler.html
Einführung in Apache Airflow mit Python

Spezielle Presets

Airflow hat drei spezielle schedule-Presets:

  • None – Nie planen, für manuell ausgelöste DAGs
  • @once – Nur einmal planen
  • @continuous – Startet sofort nach Ende des vorherigen Laufs
Einführung in Apache Airflow mit Python

timedelta

  • Alternativ pendulum.duration nutzbar
  • duration(hours=6)
  • duration(minutes=30)
from pendulum import duration

@dag(
  dag_id="example_dag"
  schedule=duration(days=2)
)
Einführung in Apache Airflow mit Python

Schedules anwenden

  • Schedule wird am DAG definiert
  • Über den Parameter schedule:
@dag(
  dag_id="example_dag",
  schedule="0 12 * * *"
)
@dag(
  dag_id="example_dag",
  schedule="@daily"     
)
Einführung in Apache Airflow mit Python

Schedule-Fallstricke

Beim Planen eines DAGs gilt:

  • Ein komplettes Intervall muss nach dem Startdatum vergehen
  • Geplant wird bei start_date + schedule
'start_date': datetime(2026, 2, 25, tz="UTC")
'schedule': @daily

Frühester Startzeitpunkt: 26. Februar 2026

Einführung in Apache Airflow mit Python

Lass uns üben!

Einführung in Apache Airflow mit Python

Preparing Video For Download...