Halten Sie Verbindung mit uns:

Was bedeutet DAG?

Was bedeutet DAG?

DAG steht für Directed Acyclic Graph – auf Deutsch: gerichteter azyklischer Graph. Der Begriff stammt aus der Graphentheorie, hat aber im Data Engineering eine zentrale praktische Bedeutung: Er beschreibt die Abhängigkeitsstruktur von Aufgaben oder Transformationsschritten, die in einer definierten Reihenfolge ausgeführt werden müssen.

Ein Graph besteht aus Knoten (Nodes) und Kanten (Edges). Im Data Engineering entspricht jeder Knoten einer Aufgabe oder einem Datenmodell, jede Kante einer Abhängigkeit zwischen zwei Aufgaben. Die zwei weiteren Eigenschaften machen einen Graph zum DAG:

Gerichtet (Directed)
Jede Kante zeigt in eine eindeutige Richtung – von Voraussetzung zu abhängiger Aufgabe.

Azyklisch (Acyclic)
Es gibt keine Kreisläufe. Kein Knoten kann über eine Kette von Abhängigkeiten wieder zu sich selbst führen.

Gerichtet und azyklisch – was heißt das konkret?

Der Unterschied zwischen einem einfachen Graphen und einem DAG lässt sich am besten visuell verdeutlichen. Ein Zyklus würde bedeuten, dass Aufgabe A von B abhängt, B von C – und C wieder von A. Das wäre eine unauflösbare Abhängigkeitsschleife, die keine Ausführungsreihenfolge zulässt.

KEIN DAG – ZYKLUS VORHANDEN
Aufgabe A → Aufgabe B
Aufgabe B → Aufgabe C
Aufgabe C → Aufgabe A (Zyklus!)
C → A erzeugt eine Schleife – keine Ausführungsreihenfolge möglich

GÜLTIGER DAG – AZYKLISCH
Aufgabe A → Aufgabe B
Aufgabe A → Aufgabe C
Aufgabe B → Ende
Aufgabe C → Ende
Klare Richtung, kein Zyklus – eindeutige Ausführungsreihenfolge

Warum sind DAGs im Data Engineering so wichtig?

Datenpipelines bestehen fast immer aus mehreren Schritten, die voneinander abhängen: Rohdaten müssen geladen sein, bevor sie transformiert werden können; Transformationen müssen abgeschlossen sein, bevor Berichte aktualisiert werden. Ein DAG macht diese Abhängigkeiten explizit und maschinenlesbar.

Das bringt drei entscheidende Vorteile mit sich: Erstens lässt sich daraus automatisch eine gültige Ausführungsreihenfolge ableiten. Zweitens können unabhängige Schritte parallel ausgeführt werden, was die Laufzeit erheblich verkürzt. Drittens ist bei einem Fehler sofort klar, welche nachgelagerten Schritte betroffen sind und welche nicht neu berechnet werden müssen.
Kernvorteil Ein DAG ist keine bloße Visualisierung – er ist eine formale Datenstruktur, aus der Werkzeuge wie Airflow oder dbt automatisch Ausführungspläne, Parallelisierungen und Abhängigkeitsprüfungen ableiten.

DAGs in der Praxis: dbt und Airflow

Beide Tools, die in vorherigen Artikeln bereits vorgestellt wurden, bauen zentral auf dem DAG-Konzept auf – allerdings auf unterschiedlichen Ebenen:

Tool Ebene Was ein Knoten darstellt Was eine Kante darstellt
dbt Core Transformation Ein SQL-Modell (View oder Tabelle) Eine ref()-Abhängigkeit zwischen Modellen
Apache Airflow Orchestrierung Ein Task (Python, SQL, Bash, …) Eine »-Abhängigkeit zwischen Tasks

In dbt entsteht der DAG implizit durch die ref()-Funktion: Sobald Modell B auf Modell A verweist, weiß dbt, dass A zuerst ausgeführt werden muss. Airflow hingegen definiert den DAG explizit im Python-Code – der Entwickler legt fest, welche Tasks welchen vorangehen.

Ein einfaches Beispiel

Ein typischer Analytics-Workflow lässt sich als DAG mit fünf Knoten darstellen. Schritt 1 muss zuerst abgeschlossen sein; Schritte 2 und 3 sind voneinander unabhängig und können parallel laufen; Schritt 4 wartet auf beide; Schritt 5 schließt ab.

Schritt 1 Rohdaten laden Voraussetzung für alles Folgende
Schritt 2 Schema validieren parallel zu Schritt 3
Schritt 3 Staging befüllen parallel zu Schritt 2
Schritt 4 dbt-Modelle transformieren wartet auf Schritte 2 und 3
Schritt 5 Report aktualisieren Abschluss

Fazit

Der DAG ist das konzeptionelle Fundament, auf dem moderne Data-Engineering-Werkzeuge aufbauen. Er macht Abhängigkeiten zwischen Aufgaben explizit, ermöglicht parallele Ausführung und verhindert unauflösbare Zyklen. Wer dbt Core oder Apache Airflow versteht, arbeitet täglich mit DAGs – oft ohne es explizit zu benennen.