Was ist Apache Airflow?
Apache Airflow ist eine Open-Source-Plattform zur Orchestrierung, Planung und Überwachung von Datenpipelines. Ursprünglich 2014 bei Airbnb entwickelt, zählt es heute zu den meistgenutzten Werkzeugen im modernen Data Engineering. Der entscheidende Vorteil: Workflows werden nicht als Konfigurationsdateien, sondern als Python-Code definiert – sie lassen sich damit wie Software versionieren, testen und wiederverwenden.
DAGs – das Herzstück von Airflow
Das zentrale Konzept ist der DAG (Directed Acyclic Graph). Ein DAG beschreibt eine Menge von Aufgaben (Tasks) und deren Abhängigkeiten. Die Ausführung fließt immer in eine Richtung – kein Task kann sich selbst als Voraussetzung haben.
| extract_data | PythonOperator | Startpunkt |
|---|---|---|
| validate_schema | PythonOperator | parallel zu load_staging |
| load_staging | SQLExecuteQueryOperator | parallel zu validate_schema |
| run_dbt | BashOperator | wartet auf beide vorigen Schritte |
| notify | EmailOperator | Abschluss |
Beispiel: Ein einfacher Airflow-DAG mit parallelen Schritten und anschließender dbt-Transformation
Architektur und Kernkomponenten
Webserver
Die Web-Oberfläche (UI) zur Verwaltung, Überwachung und manuellen Steuerung von DAGs und einzelnen Task-Ausführungen.
Scheduler
Überwacht alle DAGs, wertet deren Zeitplan und Abhängigkeiten aus und übergibt fällige Tasks an den Executor.
Executor
Führt die eigentlichen Tasks aus. Je nach Konfiguration lokal (SequentialExecutor), verteilt (CeleryExecutor) oder in Kubernetes-Pods (KubernetesExecutor).
Metadata Database
Eine relationale Datenbank (z.B. PostgreSQL), in der Airflow den Zustand aller DAG-Runs, Tasks und deren Logs speichert.
Worker
Bei verteilten Setups (z.B. Celery) sind Workers eigenständige Prozesse, die Tasks entgegennehmen und ausführen.
DAG Folder
Ein gemeinsam genutztes Verzeichnis, in dem alle Python-DAG-Definitionen abgelegt und vom Scheduler gelesen werden.
Operators – die Bausteine der Tasks
Jeder Task wird durch einen Operator definiert, der die eigentliche Arbeit kapselt. Airflow bringt viele eingebaute Operatoren mit, darunter:
- PythonOperator – führt eine Python-Funktion aus
- BashOperator – führt Shell-Befehle aus
- SQLExecuteQueryOperator – führt SQL gegen eine Datenbank aus
- EmailOperator – verschickt Benachrichtigungen Über Provider-Pakete stehen weitere Operatoren für AWS, GCP, Azure, Snowflake, Databricks, Slack und viele mehr bereit.
Airflow und dbt – eine natürliche Ergänzung
Airflow und dbt Core ergänzen sich ideal: dbt übernimmt die Transformation im Data Warehouse, Airflow steuert den übergeordneten Prozess – wann und in welcher Reihenfolge Extraktion, Laden, Transformation und Benachrichtigungen ausgeführt werden. Beide Tools teilen dabei das Prinzip „Code statt Konfiguration".
Unterstützte Plattformen
Über das Provider-System integriert Airflow nahezu alle modernen Datenplattformen nativ:
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP)
- Microsoft Azure
- Snowflake
- Databricks
- PostgreSQL / MySQL
- Oracle DB
- Kubernetes
- Apache Spark
- dbt Core
- Slack / E-Mail
- HTTP / REST APIs
Betriebsvarianten
-
Self-Hosted Maximale Kontrolle, erfordert eigenes Setup und Wartung.
-
Docker / Kubernetes De-facto-Standard – containerisierter Betrieb mit dynamischer Skalierung über den KubernetesExecutor.
-
Managed Services (Astronomer, MWAA, Cloud Composer) Reduzierter operativer Aufwand, ideal für Produktivumgebungen.
Stärken und Grenzen
Airflow überzeugt durch Flexibilität, ein großes Integrations-Ökosystem und die Möglichkeit, komplexe dynamische Pipelines in Python abzubilden. Als Batch-Orchestrator ist es jedoch nicht für Echtzeit-Streaming ausgelegt – dafür sind Tools wie Apache Kafka oder Flink besser geeignet. Für kleinere Teams kann der initiale Einrichtungsaufwand ein Argument für einen Managed Service sein.
Fazit
Apache Airflow ist der Industriestandard für die Orchestrierung von Datenpipelines. In Kombination mit dbt Core und modernen Cloud-DWH-Plattformen bildet es das Rückgrat des modernen Analytics-Engineering-Stacks.