Apache Airflow ist ein Open-Source-Werkzeug zur Orchestrierung von Datenpipelines. 2014 bei Airbnb entstanden (Maxime Beauchemin), wurde es 2015 als Open Source veröffentlicht und ist seit 2019 ein Apache-Top-Level-Projekt. Airflow definiert Workflows als DAGs (Directed Acyclic Graphs) in Python und übernimmt Zeitplanung, Ausführung und Überwachung.
Grundkonzept: DAG
Ein DAG beschreibt Aufgaben (Tasks) und ihre Abhängigkeiten als azyklischen Graphen: Ein Task darf erst laufen, wenn seine Vorgänger erfolgreich abgeschlossen sind. Der Zeitplan (Schedule) lässt sich cron-artig oder ereignisgesteuert festlegen. Im Unterschied zu einfachen Shell-Cronjobs bekommt man Sichtbarkeit, Wiederholung, Retry-Logik und Abhängigkeiten.
Komponenten
- Scheduler: prüft ständig, welche DAG-Runs fällig sind, und reicht Tasks an Executor weiter.
- Executor: führt Tasks aus (lokal, Celery, Kubernetes).
- Webserver/UI: grafische Übersicht über DAGs, Läufe, Logs und Fehler.
- Metadaten-Datenbank: speichert Zustände und Historien (häufig PostgreSQL).
Ein DAG wird als Python-Datei definiert, z.B. mit dem BashOperator oder PythonOperator pro Task:
from datetime import datetime
from airflow import DAG
from airflow.operators.bash import BashOperator
with DAG("example", schedule="@daily", start_date=datetime(2026, 1, 1)) as dag:
t1 = BashOperator(task_id="extract", bash_command="python3 extract.py")
t2 = BashOperator(task_id="load", bash_command="python3 load.py")
t1 >> t2
Einsatz in Data Engineering
Airflow orchestriert typische ETL-/ELT-Abläufe: Daten extrahieren, in ein Data Warehouse laden, Transformationen ausführen — etwa dbt-Runs — und Reports erzeugen. Alternativen sind Luigi, Dagster und Prefect.
Verwandte Grundlagen: Data Pipeline, ETL, ELT, Datenintegration, spaltenorientierte Datenbank, dbt.