<EbeneX/>
Daten DevOps · Updated 1. Juli 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 >= '{{ start_date }}'

-- 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

Transformations-Tools können daraus Lineage ableiten:

raw.orders → stg_orders → customer_metrics

OpenLineage Event

{
  "eventType": "COMPLETE",
  "eventTime": "<event-timestamp>",
  "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

# Lineage-Metadaten können erfassen:
# source.orders → transform → 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")
# → abhängige Tabellen, Dashboards oder Modelle

Lineage für ML

Training Data Lineage:
──────────────────────
raw.customers ──┐
                ├──→ feature_engineering ──→ training_data ──→ model_version
raw.transactions┘         │
                          └──→ feature_store
                          
Wenn Quelldaten sich ändern:
→ Feature Engineering prüfen
→ Training Data neu validieren
→ Modellqualität und Retraining-Bedarf bewerten

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

Nachvollziehen, woher sensible oder personenbezogene Daten kommen

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?

Viele Pipeline- und Transformations-Tools können Lineage aus Code, Jobs oder Metadaten ableiten. Automatisierung ist meist robuster als rein manuelle Dokumentation, muss aber geprüft und ergänzt werden.

Brauche ich Data Lineage für ML?

Ja, besonders für Reproduzierbarkeit, Debugging, Governance und Compliance. Wichtig ist zu wissen, welche Daten ein Modell genutzt hat, woher sie kamen und wie sie transformiert wurden.

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