Zum Hauptinhalt springen

💻 WEBINAR am 27.11.2025: Erfolgreiche B2B Marketing Planung 2026 - Gratis anmelden >

15.10.2025: Airflow Blog-Serie Teil 4

Workflows in Airflow: Klarheit und Skalierung


HMA Team Giorgio Frisenda 1b90ede9
Giorgio Frisenda, 15.10.2025

In unserem letzten Beitrag der Airflow Blog-Serie haben wir gezeigt, wie Sie Airflow-DAGs mit Logging, Retries und Alerting robuster machen. Doch Resilienz alleine hilft wenig, wenn die Workflows in Airflow unübersichtlich sind.

Stellen Sie sich vor, Sie haben Ihre erste Airflow-Pipeline gebaut. Sie ruft Kampagnendaten von LinkedIn ab, lädt sie in Snowflake und fertig. Anfangs läuft alles rund. Doch sobald die Pipeline wächst, d.h. mehr Endpunkte, mehr Kund:innen, mehr zusätzliche Elemente, wirkt sie weniger wie eine saubere Produktionslinie und mehr wie ein verworrenes Spinnennetz. Genau hier spielt Struktur eine entscheidende Rolle. Die Art, wie Sie Workflows in Airflow gestalten, ist nicht nur eine Stilfrage. Sie beeinflusst direkt, wie verständlich, schnell und zuverlässig Ihre Pipelines sind.

In diesem Beitrag beleuchten wir bewährte Muster für die Strukturierung von Workflows in Airflow, insbesondere in Marketing-Pipelines.

Lineare Workflows in Airflow: Einfach, aber begrenzt

Das einfachste Design ist eine gerade Linie.

Es ist ideal für kleine Pipelines oder Schritte, die direkt voneinander abhängen. Zum Beispiel:

  • LinkedIn-API-Token abrufen
  • Kampagnendaten abrufen
  • Kampagnendaten nach Snowflake laden

Dieser Ansatz ist klar und leicht nachvollziehbar. Wenn Ihre Tasks wirklich aufeinander aufbauen, ist das perfekt. Doch mit wachsender Pipeline zeigt sich die Schwäche. Müssen Sie Dutzende Endpunkte nacheinander abfragen, dauert der „einfache“ Flow plötzlich Stunden. Lineare Workflows in Airflow sind großartig für den Einstieg. Sie skalieren jedoch schlecht.

Workflows_in_Airflow_Linear

Fan-Out: Parallelität in großem Maßstab

Für größere Jobs beschleunigen Fan-Out/Fan-In-Muster deutlich. In unserem Beispiel:

  • Nach der Authentifizierung führen Sie ein Fan-Out in mehrere „Fetch“-Aufgaben durch (eine pro LinkedIn-Endpunkt).
  • Sobald alle abgeschlossen sind, laden sie die Aufgabe, die alles aggregiert und in Snowflake schreibt (Load Task).

Dieses Design sorgt für schnelle Pipelines und klare Abhängigkeiten.

Workflows_in_Airflow_Fan-Out

TaskGroups: DAGs übersichtlich halten

Wenn DAGs wachsen, können Hunderte Tasks die Airflow-UI überfordern. TaskGroups bündeln verwandte Tasks in logische „Ordner“:

  • Eine Fetch-Gruppe mit einem Task pro Endpunkt
  • Eine Load-Gruppe mit Staging-, Transformations- und Warehouse-Ladeschritten.

TaskGroups verändern die Ausführung nicht, machen Workflows in Airflow jedoch deutlich übersichtlicher.

Workflows_in_Airflow_Task-Groups

Wann Sie Workflows in Airflow nicht parallelisieren sollten

Parallelität ist leistungsstark, aber mehr ist nicht immer besser. Stellen Sie sich vor, Sie senden hundert API-Anfragen gleichzeitig an LinkedIn. Sie werden wahrscheinlich an Rate Limits stoßen und Fehlermeldungen erhalten.

Manchmal ist es sicherer, Daten sequenziell abzurufen, auch wenn dies länger dauert. Die Kunst besteht darin, ein Gleichgewicht zu finden: Führen Sie so viel wie möglich parallel aus, aber beachten Sie die Grenzen von APIs, Data Warehouses und Infrastruktur.

In unserem Anwendungsfall haben wir uns entschieden, die Aufgaben extraction_linkedin_account_details nacheinander zu gestalten, um eine Drosselung der API zu vermeiden, während wir die Aufgaben load_linkedin_account_details parallelisiert haben.

Workflows_in_Airflow_Parallize

Sind Fan-Out und Fan-In die einzigen Optionen?

Überhaupt nicht. Selbst wenn Ihre Aufgaben parallel ausgeführt werden, können Sie mit Airflow steuern, wie viele DAG-Läufe (Directed Acyclic Graph) und Aufgaben gleichzeitig ausgeführt werden. Auf DAG-Ebene können Sie diese Grenzwerte global in airflow.cfg über max_active_runs_per_dag und max_active_tasks_per_dag konfigurieren:

Workflows_in_Airflow_Max-active-runs

Für eine feinere Steuerung können Sie lokal Grenzen für einzelne Aufgaben mit task_concurrency festlegen oder Aufgaben einem Pool zuweisen. Wenn beispielsweise die Anzahl der parallelen Aufgaben in der TaskGroup extraction_linkedin_account_details zunimmt, können Sie die Gesamtzahl der gleichzeitig ausgeführten Aufgaben begrenzen, um API-Ratenbeschränkungen zu vermeiden. Durch die Verwendung dieser lokalen Steuerelemente zusammen mit globalen DAG-Einstellungen können Sie Aufgaben sicher verteilen und gleichzeitig eine Überlastung der APIs verhindern.

Workflows_in_Airflow_Task-Concurrency

Was als Nächstes kommt: Idempotente Workflows in Airflow

Mit modularen Tasks, Resilienz und skalierbaren Mustern sind Sie auf dem Weg zu produktionsreifen Workflows in Airflow. Jedoch fehlt noch ein Prinzip, das jede Marketing-Pipeline braucht: Idempotenz.

Im nächsten Beitrag zeigen wir, wie Sie idempotente Workflows in Airflow entwickeln, die sich risikolos erneut ausführen lassen, ohne Daten zu duplizieren oder zu beschädigen. So kompromittieren Retries und Backfills Ihren Marketing Data Stack nicht.