<EbeneX/>
Daten DevOps · Updated 11. März 2026

Data Lineage

Definition

Die Dokumentation des Datenflusses von der Quelle bis zum Endprodukt – woher kommen Daten, wie werden sie transformiert, wo werden sie verwendet.

Fortgeschritten 2 Min. Lesezeit EN: Data Lineage

Einfach erklärt

Data Lineage dokumentiert den Weg deiner Daten: Woher kommen sie, was passiert mit ihnen, und wo landen sie am Ende. Wie ein GPS-Tracker für Daten.

Beispiel:

Quelle                    Transformation              Ziel
───────────────────────────────────────────────────────────
CRM-System ──┐
             ├──→ ETL-Job ──→ Data Warehouse ──→ ML-Modell
Web-Logs ────┘      │              │
                    │              └──→ Dashboard

                    └──→ Aggregation ──→ Report

Was wird getrackt?

AspektFrageBeispiel
HerkunftWoher?CRM-System, API, CSV
TransformationWas wurde gemacht?JOIN, Filter, Aggregation
AbhängigkeitenWer nutzt es?Dashboard, ML-Modell
ZeitstempelWann?Letzte Aktualisierung
OwnerWer ist verantwortlich?Team Data Engineering

Technischer Deep Dive

dbt Lineage

-- models/staging/stg_orders.sql
SELECT
    id,
    customer_id,
    order_date,
    total
FROM {{ source('raw', 'orders') }}
WHERE order_date >= '2024-01-01'

-- models/marts/customer_metrics.sql
SELECT
    customer_id,
    COUNT(*) as order_count,
    SUM(total) as lifetime_value
FROM {{ ref('stg_orders') }}
GROUP BY customer_id

dbt generiert automatisch Lineage:

raw.orders → stg_orders → customer_metrics

OpenLineage Event

{
  "eventType": "COMPLETE",
  "eventTime": "2026-03-11T14:30:00Z",
  "run": {
    "runId": "abc-123"
  },
  "job": {
    "namespace": "etl",
    "name": "transform_orders"
  },
  "inputs": [
    {
      "namespace": "postgres",
      "name": "raw.orders"
    }
  ],
  "outputs": [
    {
      "namespace": "warehouse",
      "name": "staging.orders"
    }
  ]
}

Airflow mit OpenLineage

from airflow import DAG
from airflow.providers.openlineage.plugins.adapter import OpenLineageAdapter

with DAG("etl_pipeline") as dag:
    
    extract = PostgresOperator(
        task_id="extract_orders",
        sql="SELECT * FROM orders"
    )
    
    transform = PythonOperator(
        task_id="transform",
        python_callable=transform_data
    )
    
    load = BigQueryOperator(
        task_id="load_to_bq",
        destination_table="warehouse.orders"
    )
    
    extract >> transform >> load

# OpenLineage erfasst automatisch:
# postgres.orders → transform → bigquery.warehouse.orders

Impact Analysis

def get_downstream_dependencies(table_name):
    """Was bricht, wenn ich diese Tabelle ändere?"""
    lineage = get_lineage_graph()
    
    downstream = []
    queue = [table_name]
    
    while queue:
        current = queue.pop(0)
        for dependent in lineage.get_dependents(current):
            downstream.append(dependent)
            queue.append(dependent.name)
    
    return downstream

# Beispiel
deps = get_downstream_dependencies("raw.orders")
# → ["stg_orders", "customer_metrics", "revenue_dashboard", "churn_model"]

Lineage für ML

Training Data Lineage:
──────────────────────
raw.customers ──┐
                ├──→ feature_engineering ──→ training_data ──→ model_v1.0
raw.transactions┘         │
                          └──→ feature_store
                          
Wenn raw.customers sich ändert:
→ feature_engineering muss neu laufen
→ training_data ist veraltet
→ model_v1.0 sollte neu trainiert werden

Data Lineage ist wie ein Stammbaum für Daten: Du kannst jeden Datenpunkt zu seinen Ursprüngen zurückverfolgen und sehen, welche Transformationen er durchlaufen hat – wie bei der Ahnenforschung.

Dokumentiert Datenherkunft (woher?)

Trackt Transformationen (was wurde gemacht?)

Zeigt Abhängigkeiten (wer nutzt die Daten?)

Debugging

Fehlerhafte Daten zur Quelle zurückverfolgen

Sicherheit

DSGVO: Woher kommen personenbezogene Daten?

Impact Analysis

Was bricht, wenn ich diese Tabelle ändere?

Data Quality

Qualitätsprobleme zur Ursache zurückverfolgen

Was ist der Unterschied zwischen Data Lineage und Data Catalog?

Data Catalog: Was gibt es? (Inventar). Data Lineage: Woher kommt es und wohin geht es? (Fluss). Beide ergänzen sich für Data Governance.

Wie erfasse ich Lineage automatisch?

Tools wie dbt, Airflow mit OpenLineage, oder Spark mit Spline erfassen Lineage automatisch aus dem Code. Besser als manuelle Dokumentation.

Brauche ich Data Lineage für ML?

Ja! Für Reproduzierbarkeit, Debugging und Compliance. Welche Daten haben das Modell trainiert? Woher kamen sie? Wie wurden sie transformiert?

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.