Diplom-Biologe | Senior IT-Consultant
|
SH |
Sascha Hess xenosystems.de - IT-Consulting & Data Management |
www.xenosystems.de |
|
|
NOTFALL-KIT – SQL SERVER 2026 |
|
|
SQL Server |
|
|
Data Lineage & Datenherkunft |
|
|
Woher kommen Ihre Daten — und welchen können Sie vertrauen? |
WAS SIE IN DIESEM KIT ERHALTEN:
|
|
1 |
10 Lineage-Fallen Die häufigsten Fehler bei der Datenherkunftsdokumentation — mit Sofort-Lösungen |
|
|
2 |
Lineage-Dokumentation Vorlage und Schichtenmodell für jede Datenpipeline im KMU |
|
|
3 |
SQL-Diagnose-Toolkit 7 Skripte zur automatischen Abhängigkeitsanalyse in SQL Server |
|
|
4 |
Tool-Vergleich 2026 Purview, OpenMetadata, dbt — was passt zu welcher Umgebung? |
|
|
5 |
30-Tage-Lineage-Plan Von Null zu einer vollständig dokumentierten Datenpipeline |
HAFTUNGSAUSSCHLUSS
Alle Methoden, Skripte und Empfehlungen wurden sorgfältig auf Basis langjähriger praktischer Erfahrung in der Datenarchitektur und BI-Entwicklung erstellt. Da jede Systemlandschaft individuell ist, übernimmt der Autor keinerlei Haftung für Folgen aus der Anwendung der beschriebenen Methoden. Testen Sie alle Skripte zunächst in einer Nicht-Produktionsumgebung.
KEINE ERGEBNISGARANTIE
Genannte Aufwandsschätzungen und Verbesserungserwartungen sind Erfahrungswerte aus realen Projekten und keine verbindliche Zusicherung. Tatsächliche Ergebnisse hängen von Systemkomplexität, Teamgröße und vorhandener Dokumentationsbasis ab.
VERSIONSHINWEIS
Die Inhalte beziehen sich auf SQL Server 2022/2025, Microsoft Purview (Q1 2026), OpenMetadata 1.4 und dbt Core 1.8, Stand März 2026. Alle genannten Plattformen werden regelmäßig aktualisiert — Funktionsumfang und Preise können abweichen.
URHEBERRECHT
Dieses Dokument ist für den persönlichen oder betriebsinternen Gebrauch des Käufers lizenziert. Weiterverkauf, Weitergabe an Dritte und öffentliche Veröffentlichung sind ohne schriftliche Genehmigung nicht gestattet.
MARKENRECHTE
Microsoft Purview, Power BI, Azure Data Factory und SQL Server sind eingetragene Marken der Microsoft Corporation. dbt ist ein Produkt von dbt Labs, Inc. OpenMetadata steht unter der Apache-2.0-Lizenz. Alle anderen genannten Produkt- und Unternehmensnamen sind Eigentum ihrer jeweiligen Inhaber.
Eine ausführliche Version dieses Haftungsausschlusses befindet sich am Ende dieses Dokuments.
01 Einleitung
Warum "Woher kommt diese Zahl?" die wichtigste Datenfrage ist
02 Die 10 Lineage-Fallen
Häufigste Fehler — und wie man sie strukturell vermeidet
03 Das Lineage-Schichtenmodell
Quellen, Staging, DWH, Semantic Layer, Report — vollständig dokumentiert
04 SQL-Diagnose-Toolkit
7 Skripte zur automatischen Abhängigkeitsanalyse in SQL Server
05 Lineage in Power BI
Dataset-Lineage, Purview-Integration und eingebaute Herkunftsansicht
06 dbt als Lineage-Standard
Automatische Dokumentation, Tests und Lineage-Graph mit dbt Core
07 Tool-Vergleich 2026
Purview, OpenMetadata, dbt, Atlan — was passt zu welcher Umgebung?
08 Impact Analysis
Wer bricht, wenn ich das hier ändere? Downstream-Analyse praktisch
09 Lineage-Governance
Wer pflegt was — und wie bleibt Lineage dauerhaft aktuell?
10 30-Tage-Lineage-Plan
Von Null zu einer vollständig dokumentierten Datenpipeline
01
Es ist Montagmorgen. Der CFO öffnet das Power-BI-Dashboard. Der Umsatz zeigt 1,43 Mio. Euro. Der Controlling-Report, den der Sachbearbeiter parallel per Excel gepflegt hat, zeigt 1,41 Mio. Euro. Die ERP-Auswertung zeigt 1,44 Mio. Euro. Welche Zahl ist richtig?
Niemand weiß es sofort. Die Antwort erfordert eine Stunde Detektivarbeit: Welche Tabelle zieht das Dashboard? Welcher ETL-Job versorgt die Tabelle? Zieht der ETL nach Buchungsdatum oder Lieferdatum? Sind Stornos enthalten? Welche Währungsumrechnung gilt?
Das ist kein Datenqualitätsproblem. Das ist ein Lineage-Problem.
Data Lineage — die vollständige Dokumentation der Herkunft, des Transformationswegs und der Abhängigkeiten von Daten — ist in mittelständischen Unternehmen fast immer das schwächste Glied in der Datenkette. Nicht weil die Systeme es nicht erlauben, sondern weil niemand es explizit dokumentiert hat.
Die Konsequenzen sind in der Praxis täglich spürbar:
→ Fehlerdiagnose dauert Stunden statt Minuten, weil niemand den genauen Weg einer Zahl vom Quelldatensatz bis zum Dashboard kennt.
→ Änderungen an Quelltabellen brechen unbemerkt Downstream-Reports — weil die Abhängigkeiten nicht dokumentiert sind.
→ Datenqualitätsprobleme werden an der falschen Stelle behoben — im Report statt in der Quelle.
→ DSGVO-Auskunftspflichten können nicht erfüllt werden, weil niemand weiß, welche Systeme personenbezogene Daten aus welcher Quelle enthalten.
→ ERP-Upgrades oder Schemaänderungen werden zum Blindflug, weil unklar ist, welche nachgelagerten Systeme betroffen sind.
Dieses Kit liefert den vollständigen, praxistauglichen Werkzeugkasten für Data Lineage im mittelständischen Umfeld — von der manuellen Dokumentationsvorlage bis zur automatisierten Lineage mit dbt und Microsoft Purview.
|
|
WAS SIE IN DIESEM BUCH ERWARTEN DÜRFEN ■ 10 Lineage-Fallen — Die häufigsten Fehler bei der Datenherkunftsdokumentation mit konkreten Gegenmaßnahmen. ■ Schichtenmodell — Vollständige Lineage-Dokumentationsvorlage für jede Datenpipeline vom Quellsystem bis zum Report. ■ SQL-Diagnose-Toolkit — 7 DMV- und Systemkatalog-Skripte zur automatischen Abhängigkeitsanalyse in SQL Server. ■ Tool-Vergleich — Purview, OpenMetadata, dbt und Atlan im ehrlichen Vergleich für KMU. ■ 30-Tage-Lineage-Plan — Von der ersten Bestandsaufnahme zur vollständig dokumentierten Datenpipeline. |
|
|
DEFINITION: WAS IST DATA LINEAGE? Data Lineage dokumentiert für jeden Datenpunkt: Woher stammt er (Quelle)? Welche Transformationen hat er durchlaufen (Herkunftspfad)? Wer oder was verwendet ihn heute (Abhängigkeiten)? Und: Was passiert downstream, wenn er sich ändert (Impact)? Vollständige Lineage macht Daten nachvollziehbar, vertrauenswürdig und änderungssicher. |
02
Die SQL-Entwicklerin, die die ETL-Prozesse gebaut hat, kennt den Weg jeder Kennzahl auswendig. Aber wenn sie krank ist, im Urlaub oder das Unternehmen verlassen hat, ist dieses Wissen weg. Die gesamte Datenpipeline liegt als implizites Wissen in einer Person — nicht in der Dokumentation.
LÖSUNG:
✓ Lineage-Dokumentation als Pflichtbestandteil jeder ETL-Entwicklung — kein Deployment ohne Lineage-Dokument.
✓ Vier-Augen-Prinzip: Jede Lineage-Dokumentation wird von einer zweiten Person gegengelesen und bestätigt.
✓ Wissenstransfer-Sessions einplanen: einmal pro Quartal, 60 Minuten, eine Datenpipeline gemeinsam durchgehen.
Die Dokumentation zeigt den Normalfall: Daten fließen von Tabelle A über ETL-Job B nach Tabelle C. Nicht dokumentiert: Was passiert bei Fehlern? Welche Fehlbehandlungslogik läuft? In welcher Tabelle landen fehlerhafte Datensätze? Welcher Monitoring-Job überwacht den Ablauf?
LÖSUNG:
✓ Lineage-Vorlage (Kapitel 3) enthält Pflichtfelder für Fehlerbehandlung, Fehler-Log-Tabellen und Alerting.
✓ Error-Handling-Pfade im Lineage-Diagramm explizit einzeichnen — mit andersfarbiger Linie oder separater Notiz.
✓ "Was passiert, wenn dieser Job fehlschlägt?" als Standardfrage in jedem Lineage-Review.
Die Berechnungslogik lebt ausschließlich im SSIS-Paket, im ADF-Pipeline-JSON oder im Power Query M-Skript. Wer die Logik verstehen will, muss das Tool öffnen und durch verschachtelte Transformationsschritte navigieren — kein Mensch liest das ohne Einarbeitung.
LÖSUNG:
✓ Transformationslogik in menschenlesbarer Form neben dem Code dokumentieren: Was tut dieser Schritt, warum, und welche Geschäftsregel liegt dahinter?
✓ Kritische Berechnungen (Umsatz, Deckungsbeitrag, KPI-Definitionen) zusätzlich im Business Glossar verankern.
✓ dbt (Kapitel 6) als Lösung: Dokumentation lebt direkt neben dem SQL-Code — immer synchron.
Das Lineage-Dokument wird einmal erstellt und nie aktualisiert. Nach einem Jahr hat die tatsächliche Pipeline sechs Änderungen durchlaufen — die Dokumentation zeigt den Stand vom ersten Tag. Schlimmer: niemand weiß, ob die Dokumentation noch stimmt.
LÖSUNG:
✓ Lineage-Dokumente in Git oder Wiki mit Versionsverlauf pflegen — jede Änderung an der Pipeline erzwingt eine Dokumentationsaktualisierung.
✓ Review-Termin direkt im Lineage-Dokument: mindestens alle 6 Monate oder bei jeder Pipeline-Änderung.
✓ Automatische Benachrichtigung: Wenn eine Quelltabelle geändert wird, erhält der Lineage-Owner automatisch eine Benachrichtigung (über DDL-Trigger oder Purview-Alert).
Die ETL-Lineage ist dokumentiert: von SQL Server bis ins Data Warehouse. Aber niemand hat dokumentiert, welche Power-BI-Datasets auf welche DWH-Tabellen zugreifen, welche Reports auf welche Datasets, und welche Dashboard-Elemente auf welche Measures basieren. Die Lineage endet an der Systemgrenze — genau dort, wo die meisten Fragen entstehen.
LÖSUNG:
✓ Lineage muss End-to-End sein: vom Quelldatensatz im ERP bis zum Pixel im Dashboard.
✓ Power BI Lineage-Ansicht im Service aktivieren und pflegen (Kapitel 5).
✓ Für jedes kritische Dashboard: vollständige Lineage-Kette als Dokument oder Diagram im Wiki hinterlegen.
Tabelle A wird aus Tabelle B berechnet. Tabelle B wird — irgendwo tief in der Transformationskette — aus einer aggregierten Sicht berechnet, die wiederum Tabelle A referenziert. Das Ergebnis: falsche Zahlen, die schwer reproduzierbar sind, weil die Berechnungsreihenfolge von der Ausführungszeit abhängt.
LÖSUNG:
✓ Abhängigkeitsanalyse-Skript (Kapitel 4, DMV 3) regelmäßig ausführen: identifiziert zirkuläre Referenzen in SQL-Server-Objekten.
✓ DAG (Directed Acyclic Graph) als Designprinzip: Jede Datenpipeline muss azyklisch sein — keine Kreisabhängigkeiten.
✓ dbt erzwingt automatisch eine azyklische Struktur — Circular Dependencies werden beim Build erkannt und blockiert.
Zwischen ETL-Job und BI-Tool liegt ein manueller Schritt: jemand exportiert eine CSV, bearbeitet sie in Excel, und importiert sie zurück. Dieser manuelle Schritt ist nirgendwo dokumentiert — er ist unsichtbar in der Lineage und damit eine unbekannte Fehlerquelle.
LÖSUNG:
✓ Manuelle Zwischenschritte explizit in der Lineage-Dokumentation markieren — mit Symbol oder Farbe.
✓ Manuelle Schritte sind Risiko: für jeden manuellen Schritt eine Automatisierungsoption evaluieren.
✓ Wenn manuelle Schritte unvermeidbar sind: Checkliste, Protokollpflicht und Vier-Augen-Prinzip.
Wo genau liegen in Ihrer Systemlandschaft Kundennamen, E-Mail-Adressen, Geburtsdaten? In welcher Tabelle im Data Warehouse? In welchem Power-BI-Dataset? In welchem Report? Ohne vollständige Lineage kann diese DSGVO-Pflichtfrage nicht beantwortet werden.
LÖSUNG:
✓ Personenbezogene Daten als eigene Lineage-Kategorie behandeln — separat dokumentiert, mit Datenschutzbeauftragtem abgestimmt.
✓ Microsoft Purview: automatisches Tagging von PII-Daten über Data Classification (Kapitel 7).
✓ Für jedes System, das personenbezogene Daten enthält: expliziten Lineage-Pfad dokumentieren — Basis für DSGVO-Auskunftsanfragen.
Das ERP-Team ändert das Schema einer Quelltabelle: eine Spalte wird umbenannt, ein Datentyp geändert, eine Tabelle aufgeteilt. Niemand hat vorher geprüft, welche ETL-Jobs, Views, Stored Procedures, Power-BI-Datasets und Reports von dieser Tabelle abhängen. Das Ergebnis: Cascading Failures in der Produktionsumgebung.
LÖSUNG:
✓ Impact-Analyse als Pflichtschritt vor jeder Schemaänderung (Kapitel 8).
✓ SQL-Abhängigkeitsanalyse-Skript (Kapitel 4) vor jeder DDL-Änderung ausführen.
✓ Change-Management-Prozess: keine Schemaänderung ohne dokumentierte Impact-Analyse und Abnahme durch alle betroffenen Systemverantwortlichen.
Ein Lineage-Tool wie Purview oder OpenMetadata scannt die Umgebung und erzeugt automatisch eine Lineage-Ansicht. Das wird als "fertige Lineage" betrachtet — ohne zu prüfen, ob die automatisch erkannten Abhängigkeiten vollständig und korrekt sind. Automatische Lineage ist ein Startpunkt, kein Endpunkt.
LÖSUNG:
✓ Automatisch erkannte Lineage muss von einem Menschen validiert werden: Stimmt das? Fehlt etwas?
✓ Manuelle Schritte, externe Datenlieferungen und Excel-Importe werden von keinem Tool automatisch erkannt — diese müssen manuell ergänzt werden.
✓ Lineage-Tools sind Werkzeuge zur Effizienzsteigerung — die Verantwortung für Vollständigkeit liegt beim Menschen.
03
Jede Datenpipeline durchläuft typischerweise fünf logische Schichten. Vollständige Lineage dokumentiert alle fünf — inklusive der Übergänge zwischen ihnen.
|
DAS 5-SCHICHTEN-LINEAGE-MODELL: ══════════════════════════════════════════════════════════════ SCHICHT 1 — QUELLSYSTEM (Source) Was: Produktive Anwendungsdatenbank, ERP, CRM, API, Datei Wer: System-Owner (ERP-Team, IT) Risiko: Schemaänderungen, Verfügbarkeit, Zugriffsrechte
↓ [Extraktion: CDC, Full Load, API-Pull, File Drop]
SCHICHT 2 — STAGING / LANDING ZONE Was: Rohdaten, unverändert aus der Quelle Wer: Data Engineer / DBA Risiko: Vollständigkeit, Latenzen, Fehlerbehandlung
↓ [Transformation: Bereinigung, Typisierung, Anreicherung]
SCHICHT 3 — DATA WAREHOUSE / DATA MART Was: Bereinigt, modelliert, historisiert (Fakten + Dimensionen) Wer: Data Architect / BI-Entwickler Risiko: Modellierungsfehler, fehlerhafte KPI-Logik
↓ [Semantic Layer: Views, Measures, Berechnungen]
SCHICHT 4 — SEMANTIC LAYER Was: Power BI Dataset, Analysis Services Cube, SQL Views Wer: BI-Entwickler / Controlling Risiko: DAX-Fehler, falsche RLS, veraltete Measures
↓ [Visualisierung: Reports, Dashboards, Exports]
SCHICHT 5 — REPORT / DASHBOARD / EXPORT Was: Power BI Report, Excel, PDF, API-Endpunkt Wer: BI-Entwickler / Fachbereich Risiko: Falsche Filterung, Missverständnisse beim Leser ══════════════════════════════════════════════════════════════ |
|
LINEAGE-DOKUMENT — VOLLSTÄNDIGE VORLAGE: ══════════════════════════════════════════════════════════════ KPI / DATENPUNKT: Umsatz Netto (monatlich, je Kunde) Fachlicher Owner: CFO / Controlling-Leitung Technischer Owner: BI-Entwickler / DBA Dokument-Version: 1.3 — 2026-02-15 Review-Termin: 2026-08-15 ────────────────────────────────────────────────────────────── SCHICHT 1 — QUELLSYSTEM: System: ERP (MACH MBS), SQL Server: srv-erp01 Datenbank: ERP_Prod Tabelle: dbo.Belege Schlüsselfelder: BelegNr, BelegDatum, KundenID, Betrag_Netto Filter: Belegart IN ('RE','GS','ST') AND Storniert = 0 Aktualisierung: Real-time OLTP Owner: ERP-Adminteam, IT-Abteilung ────────────────────────────────────────────────────────────── SCHICHT 2 — STAGING: Prozess: SQL Agent Job: ETL_Umsatz_Daily Zeitplan: Täglich 03:00 Uhr Methode: CDC (Changed Data Capture) auf Belege Zieldatenbank: DWH_Staging, Tabelle: stg.Belege_Delta Fehler-Log: DWH_Staging.dbo.ETL_Fehler_Log Alert: E-Mail an dba@firma.de bei Job-Fehler ────────────────────────────────────────────────────────────── SCHICHT 3 — DATA WAREHOUSE: Datenbank: DWH_Prod Faktentabelle: dbo.Fact_Umsatz Dimensionen: Dim_Zeit, Dim_Kunde, Dim_Artikel, Dim_Region Transformationslogik: - Währung: Fremdwährung → EUR (Tageskurs aus Dim_Kurs) - Stornos: negative Einträge, reduzieren Perioden-Umsatz - Datum: Buchungsdatum (nicht Zahlungsdatum, nicht Lieferdatum) Historisierung: SCD Typ 2 auf Dim_Kunde (Adressänderungen) ────────────────────────────────────────────────────────────── SCHICHT 4 — SEMANTIC LAYER: Tool: Power BI (Dataset: "Umsatz KMU v4") Workspace: Produktion / Controlling Measure: [Umsatz Netto] = SUM(Fact_Umsatz[Betrag_Netto]) RLS: Aktiv — Vertriebsregion = USERPRINCIPALNAME() Refresh: Täglich 06:00 (nach ETL-Abschluss) ────────────────────────────────────────────────────────────── SCHICHT 5 — REPORTS / DASHBOARDS: Report 1: "Monats-Cockpit Vertrieb" → Seite 1, KPI-Card Report 2: "Jahresabschluss-Report" → Seite 3, Tabelle Report 3: "CFO-Dashboard" → Seite 1, Trend-Chart Export: Monatlicher Excel-Export via Power Automate ────────────────────────────────────────────────────────────── MANUELLE SCHRITTE: Keine BEKANNTE ABWEICHUNGEN: - ERP-Umsatz weicht von Faktura-Umsatz um ~0,3 % ab (Rundung) - Konzernumsatz (konsolidiert) liegt in separatem Prozess ────────────────────────────────────────────────────────────── ABHÄNGIGE SYSTEME: Power BI Service, Power Automate, Excel LETZTE ÄNDERUNG: 2026-02-15 — Währungsumrechnung ergänzt ══════════════════════════════════════════════════════════════ |
Für komplexe Pipelines mit Verzweigungen, mehreren Quellen oder Merge-Logiken ist ein visuelles Diagramm unverzichtbar. Empfohlene Tools: draw.io (kostenlos, browserbasiert), Mermaid (Code-basiert, ideal für Git), oder die native Lineage-Ansicht in Power BI / Purview.
|
LINEAGE ALS MERMAID-DIAGRAMM (für Git/Wiki): ────────────────────────────────────────────────────────────── graph LR ERP[(ERP: dbo.Belege)] -->|CDC täglich 03:00| STG STG[(Staging: stg.Belege_Delta)] -->|ETL Transform| DWH DWH[(DWH: Fact_Umsatz)] -->|Power BI Import 06:00| DS DS[Dataset: Umsatz KMU v4] -->|RLS aktiv| R1 DS --> R2 DS --> R3 R1[Monats-Cockpit Vertrieb] R2[Jahresabschluss-Report] R3[CFO-Dashboard] ────────────────────────────────────────────────────────────── |
04
SQL Server speichert alle Objektabhängigkeiten im Systemkatalog. Diese sieben Skripte machen unsichtbare Abhängigkeiten sichtbar — ohne externes Tool, direkt in SSMS.
|
-- Was referenziert Tabelle / View / Procedure X? -- Gibt alle Objekte zurück, die von einem bestimmten Objekt abhängen SELECT OBJECT_SCHEMA_NAME(d.referencing_id) AS Referenzierendes_Schema, OBJECT_NAME(d.referencing_id) AS Referenzierendes_Objekt, o.type_desc AS Objekttyp, COALESCE(d.referenced_schema_name, 'dbo') AS Ref_Schema, d.referenced_entity_name AS Referenziertes_Objekt, d.is_caller_dependent FROM sys.sql_expression_dependencies d JOIN sys.objects o ON d.referencing_id = o.object_id WHERE d.referenced_entity_name = 'Fact_Umsatz' -- Hier Objektname eintragen AND OBJECTPROPERTY(d.referencing_id, 'IsMsShipped') = 0 ORDER BY o.type_desc, OBJECT_NAME(d.referencing_id); |
|
-- Rekursive Abhängigkeitskette: vollständige Upstream/Downstream-Ansicht WITH DepChain AS ( -- Startknoten SELECT OBJECT_NAME(d.referencing_id) AS Quelle, d.referenced_entity_name AS Ziel, 1 AS Tiefe, CAST(OBJECT_NAME(d.referencing_id) + ' → ' + d.referenced_entity_name AS NVARCHAR(MAX)) AS Pfad FROM sys.sql_expression_dependencies d WHERE d.referenced_entity_name = 'Belege' -- Startobjekt
UNION ALL
SELECT OBJECT_NAME(d.referencing_id), d.referenced_entity_name, dc.Tiefe + 1, dc.Pfad + ' → ' + d.referenced_entity_name FROM sys.sql_expression_dependencies d JOIN DepChain dc ON OBJECT_NAME(d.referencing_id) = dc.Ziel WHERE dc.Tiefe < 10 -- Maximaltiefe, verhindert Endlosrekursion ) SELECT DISTINCT Quelle, Ziel, Tiefe, Pfad FROM DepChain ORDER BY Tiefe, Quelle; |
|
-- Zirkuläre Referenzen zwischen Datenbankobjekten aufdecken SELECT OBJECT_NAME(d1.referencing_id) AS Objekt_A, d1.referenced_entity_name AS Objekt_B, OBJECT_NAME(d2.referencing_id) AS Objekt_B_Verify, d2.referenced_entity_name AS Rueck_zu_A FROM sys.sql_expression_dependencies d1 JOIN sys.sql_expression_dependencies d2 ON d1.referenced_entity_name = OBJECT_NAME(d2.referencing_id) AND d2.referenced_entity_name = OBJECT_NAME(d1.referencing_id) WHERE OBJECT_NAME(d1.referencing_id) IS NOT NULL AND OBJECTPROPERTY(d1.referencing_id, 'IsMsShipped') = 0 AND OBJECTPROPERTY(d2.referencing_id, 'IsMsShipped') = 0; |
|
-- Alle Objekte die DIREKT von einer Tabelle/Spalte abhängen -- Ausführen BEVOR eine DDL-Änderung an der Quelltabelle SELECT ref.name AS Betroffenes_Objekt, ref.type_desc AS Objekttyp, ref.create_date AS Erstellt_am, ref.modify_date AS Zuletzt_geaendert, SCHEMA_NAME(ref.schema_id) AS Schema_Name, -- Letzter Aufruf aus Query-Stats (falls vorhanden): qs.last_execution_time AS Zuletzt_ausgefuehrt FROM sys.sql_expression_dependencies dep JOIN sys.objects ref ON dep.referencing_id = ref.object_id LEFT JOIN sys.dm_exec_procedure_stats qs ON ref.object_id = qs.object_id WHERE dep.referenced_entity_name = 'Belege' -- Zu ändernde Tabelle AND OBJECTPROPERTY(dep.referencing_id, 'IsMsShipped') = 0 ORDER BY ref.type_desc, ref.name; |
|
-- Alle Views mit ihrer vollständigen Spalten-Herkunft SELECT v.name AS View_Name, SCHEMA_NAME(v.schema_id) AS Schema_Name, c.name AS Spalten_Name, c.column_id, TYPE_NAME(c.user_type_id) AS Datentyp, c.max_length, c.is_nullable, -- Herkunft der Spalte: COALESCE( COL_NAME(dep.referenced_major_id, dep.referenced_minor_id), '—') AS Quell_Spalte, OBJECT_NAME(dep.referenced_major_id) AS Quell_Tabelle FROM sys.views v JOIN sys.columns c ON v.object_id = c.object_id LEFT JOIN sys.sql_dependencies dep ON v.object_id = dep.object_id AND c.column_id = dep.column_id WHERE SCHEMA_NAME(v.schema_id) <> 'sys' ORDER BY v.name, c.column_id; |
|
-- Welche Tabellen liest/schreibt welche Stored Procedure? SELECT OBJECT_NAME(d.referencing_id) AS Prozedur, d.referenced_entity_name AS Tabelle_oder_View, o_ref.type_desc AS Ref_Objekttyp, -- Zugriffsmuster aus Query-Plänen (approximativ): SUM(qs.total_logical_reads) AS Reads_Gesamt, SUM(qs.total_logical_writes) AS Writes_Gesamt, MAX(qs.last_execution_time) AS Zuletzt_ausgefuehrt FROM sys.sql_expression_dependencies d JOIN sys.objects o ON d.referencing_id = o.object_id AND o.type = 'P' -- Nur Stored Procedures LEFT JOIN sys.objects o_ref ON d.referenced_entity_name = o_ref.name LEFT JOIN sys.dm_exec_procedure_stats qs ON o.object_id = qs.object_id WHERE OBJECTPROPERTY(d.referencing_id, 'IsMsShipped') = 0 GROUP BY OBJECT_NAME(d.referencing_id), d.referenced_entity_name, o_ref.type_desc ORDER BY Prozedur, Tabelle_oder_View; |
|
-- Objekte, auf die kein anderes Objekt mehr verweist -- (Kandidaten für Bereinigung oder fehlende Dokumentation) SELECT SCHEMA_NAME(o.schema_id) AS Schema_Name, o.name AS Objekt_Name, o.type_desc AS Objekttyp, o.create_date AS Erstellt_am, o.modify_date AS Zuletzt_geaendert FROM sys.objects o WHERE o.type IN ('V','P','FN','IF','TF') -- Views, Procs, Functions AND OBJECTPROPERTY(o.object_id, 'IsMsShipped') = 0 AND NOT EXISTS ( SELECT 1 FROM sys.sql_expression_dependencies d WHERE d.referenced_entity_name = o.name ) AND NOT EXISTS ( SELECT 1 FROM sys.sql_expression_dependencies d2 WHERE d2.referencing_id = o.object_id ) ORDER BY o.type_desc, o.name; |
05
Power BI Service hat seit 2021 eine native Lineage-Ansicht — die in den meisten KMU-Umgebungen nicht genutzt wird.
→ Wo: Power BI Service → Workspace → oben rechts "Lineage" auswählen.
→ Was sie zeigt: Datenquellen → Datasets → Dataflows → Reports → Dashboards — als interaktiver Graph. Klick auf ein Element zeigt alle Upstream- und Downstream-Verbindungen.
→ Limitation: Zeigt nur Power BI-interne Objekte. Die Lineage von SQL Server / DWH bis zum Power BI Dataset muss manuell oder über Purview ergänzt werden.
|
# Python: Power BI Dataset-Abhängigkeiten über XMLA auslesen # Bibliothek: msal + requests (pip install msal requests) import requests, msal
TENANT_ID = "your-tenant-id" CLIENT_ID = "your-app-id" # Azure AD App mit Power BI Leserechten CLIENT_SECRET = "your-secret" WORKSPACE_ID = "your-workspace-id"
# Token holen app = msal.ConfidentialClientApplication( CLIENT_ID, authority=f"https://login.microsoftonline.com/{TENANT_ID}", client_credential=CLIENT_SECRET ) token = app.acquire_token_for_client( scopes=["https://analysis.windows.net/powerbi/api/.default"] )
# Alle Datasets im Workspace mit Datenquellen abrufen headers = {"Authorization": f"Bearer {token['access_token']}"}
# Datasets auflesen datasets_url = ( f"https://api.powerbi.com/v1.0/myorg/groups/" f"{WORKSPACE_ID}/datasets" ) datasets = requests.get(datasets_url, headers=headers).json()
# Je Dataset: Datenquellen (Lineage Upstream) ermitteln for ds in datasets.get("value", []): ds_id = ds["id"] src_url = ( f"https://api.powerbi.com/v1.0/myorg/groups/" f"{WORKSPACE_ID}/datasets/{ds_id}/datasources" ) sources = requests.get(src_url, headers=headers).json() print(f"\nDataset: {ds['name']}") for src in sources.get("value", []): print(f" Quelle: {src.get('datasourceType')} — " f"{src.get('connectionDetails', {})}") |
Power BI bietet zwei Qualitätssiegel für Datasets und Reports:
→ Promoted (Beworben): Dataset-Eigentümer kennzeichnet sein Dataset als empfohlen — für Nutzer sichtbar.
→ Certified (Zertifiziert): Nur von Administratoren vergebbar — höchste Vertrauensstufe, strenge Anforderungen.
|
ZERTIFIZIERUNGSANFORDERUNGEN (Best Practice für KMU): ────────────────────────────────────────────────────────────── Voraussetzungen für "Certified": ■ Vollständige Lineage-Dokumentation vorhanden (Kapitel 3 Vorlage) ■ Datenquelle und Refresh-Zeitplan dokumentiert ■ Data Owner und technischer Owner benannt ■ KPI-Definitionen im Business Glossar verankert ■ Row-Level Security geprüft und dokumentiert ■ Letzter vollständiger Test nicht älter als 3 Monate ────────────────────────────────────────────────────────────── |
06
dbt (data build tool) hat sich als De-facto-Standard für SQL-basierte Datentransformationen in analytischen Umgebungen etabliert. Der entscheidende Vorteil für Lineage: Dokumentation, Tests und Lineage-Graph entstehen automatisch aus dem Code — sie sind immer synchron.
→ Automatischer DAG: dbt analysiert alle ref()-Referenzen zwischen Modellen und erzeugt daraus automatisch einen Directed Acyclic Graph — visuell und als Metadaten.
→ Inline-Dokumentation: Beschreibungen für jedes Modell und jede Spalte leben direkt im Code (schema.yml) — immer synchron mit der Transformation.
→ Automatische Tests: Nicht-Null, Eindeutigkeit, referenzielle Integrität — als Code definiert, bei jedem Build ausgeführt.
→ dbt docs: Automatisch generierte, durchsuchbare Dokumentationsseite mit vollständigem Lineage-Graph.
|
EMPFOHLENE dbt-VERZEICHNISSTRUKTUR: ────────────────────────────────────────────────────────────── models/ ├── staging/ ← Schicht 2: Rohdaten bereinigt │ ├── stg_erp__belege.sql │ ├── stg_crm__kunden.sql │ └── schema.yml ← Dokumentation + Tests │ ├── intermediate/ ← Schicht 3a: Zwischenberechnungen │ ├── int_umsatz_bereinigt.sql │ └── schema.yml │ ├── marts/ ← Schicht 3b: Business-ready │ ├── finance/ │ │ ├── fact_umsatz.sql │ │ ├── dim_kunde.sql │ │ └── schema.yml │ └── sales/ │ └── ... │ tests/ ← Eigene Datentests seeds/ ← Referenzdaten (CSV → DB-Tabelle) macros/ ← Wiederverwendbare SQL-Makros ────────────────────────────────────────────────────────────── |
|
-- models/marts/finance/fact_umsatz.sql {{ config( materialized = 'incremental', unique_key = 'umsatz_id', on_schema_change = 'fail' -- Schemaänderung erfordert explizite Migration ) }}
WITH belege AS ( SELECT * FROM {{ ref('stg_erp__belege') }} WHERE belegart IN ('RE', 'GS', 'ST') AND storniert = FALSE ),
kunden AS ( SELECT * FROM {{ ref('dim_kunde') }} ),
final AS ( SELECT {{ dbt_utils.surrogate_key(['b.beleg_nr', 'b.beleg_datum']) }} AS umsatz_id, b.beleg_datum AS buchungsdatum, b.kunden_id, k.kunde_name, k.region, b.betrag_netto AS umsatz_eur, b.waehrung, CURRENT_TIMESTAMP AS dbt_updated_at FROM belege b LEFT JOIN kunden k USING (kunden_id) )
SELECT * FROM final {% if is_incremental() %} WHERE buchungsdatum > (SELECT MAX(buchungsdatum) FROM {{ this }}) {% endif %} |
|
# models/marts/finance/schema.yml — Inline-Dokumentation models: - name: fact_umsatz description: > Faktentabelle: alle fakturierten Umsätze, netto, in EUR. Stornos sind als negative Einträge enthalten. Buchungsdatum = Rechnungsdatum (nicht Zahlungs- oder Lieferdatum). meta: owner: controlling@firma.de data_source: ERP (MACH MBS) refresh: täglich 03:00 Uhr tests: - dbt_utils.equal_rowcount: compare_model: ref('stg_erp__belege') columns: - name: umsatz_id description: Surrogate Key (Beleg-Nr + Datum) tests: [unique, not_null] - name: umsatz_eur description: Nettobetrag in EUR nach Währungsumrechnung tests: [not_null] - name: kunden_id description: Fremdschlüssel auf dim_kunde tests: - not_null - relationships: to: ref('dim_kunde') field: kunden_id |
|
# Lineage-Graph und Dokumentation generieren: dbt docs generate
# Lokale Dokumentationsseite starten (Port 8080): dbt docs serve
# Im Browser: vollständiger Lineage-Graph, Modell-Beschreibungen, # Spalten-Dokumentation, Testergebnisse — alles auf einer Seite.
# Für den dauerhaften Betrieb: dbt-Docs auf internem Webserver # oder in dbt Cloud hosten (ab 50 $/Monat für Teams). |
07
|
Kriterium |
Microsoft Purview |
OpenMetadata |
dbt Core |
Atlan |
|
Automatische Lineage |
★★★★★ (Azure-Stack) |
★★★★ (SQL, dbt, Airflow) |
★★★★★ (SQL-Modelle) |
★★★★ |
|
Power BI Integration |
★★★★★ nativ |
★★★ |
★★★ (Metadaten) |
★★★★ |
|
SQL Server Integration |
★★★★★ |
★★★★★ |
★★★★★ |
★★★★ |
|
Manuelle Lineage ergänzen |
★★★ |
★★★★ |
★★ |
★★★★★ |
|
Business Glossar |
★★★★★ |
★★★★ |
★★ (via docs) |
★★★★★ |
|
DSGVO / PII-Tagging |
★★★★★ |
★★★ |
★★ |
★★★★ |
|
Einstiegskosten (KMU) |
~50–200 €/Monat |
Infrastruktur |
Kostenlos |
Ab 500 $/Monat |
|
Betriebsaufwand |
Niedrig (SaaS) |
Mittel (Self-hosted) |
Niedrig |
Niedrig (SaaS) |
|
Empfehlung für KMU |
Microsoft-Stack |
IT-affine Teams |
Alle mit SQL/dbt |
Budget vorhanden |
→ Microsoft Purview: Erste Wahl für alle Unternehmen mit Azure, Power BI und SQL Server. Native Integration ohne Connector-Aufwand. Lineage aus ADF, Synapse und Power BI wird automatisch erkannt. Kostenmodell prüfen: Data Map wird pro Capacity Unit abgerechnet.
→ OpenMetadata: Beste Open-Source-Option für IT-affine Teams, die volle Kontrolle über ihre Metadaten-Infrastruktur wollen. Vollständiger Datenkatalog, automatische Lineage für SQL Server, dbt und Apache Airflow. Self-hosted auf Docker oder Kubernetes.
→ dbt Core: Nicht primär ein Lineage-Tool — aber für alle Teams, die SQL-Transformationen mit dbt entwickeln, die mit Abstand beste Lösung für Transformations-Lineage. Kostenlos, code-first, Git-integriert.
→ Atlan: Beste SaaS-Option für kollaboratives Arbeiten mit Lineage, wenn Budget vorhanden ist. Stärkstes UI für manuelle Lineage-Ergänzung und Business-User-Kollaboration.
Für die meisten KMU mit Power BI und SQL Server empfiehlt sich folgender minimaler Stack:
|
EMPFOHLENER LINEAGE-STACK FÜR KMU (2026): ══════════════════════════════════════════════════════════════ STUFE 1 — Minimal (0 € Zusatzkosten): ■ Manuelle Lineage-Dokumentation nach Vorlage (Kapitel 3) ■ SQL-Diagnose-Toolkit aus Kapitel 4 (ad hoc) ■ Power BI eingebaute Lineage-Ansicht (im Service kostenlos)
STUFE 2 — Automatisiert (SQL Server + Power BI): ■ Power BI Lineage-Ansicht + Endorsement ■ Microsoft Purview (ab ~50 €/Monat für kleinen Scan-Scope) ■ dbt Core für Transformations-Layer (kostenlos)
STUFE 3 — Enterprise-grade: ■ Purview als zentrales Lineage-Hub (alle Systeme gescannt) ■ dbt Cloud für Team-Kollaboration und CI/CD ■ OpenMetadata als Datenkatalog-Frontend (optional) ══════════════════════════════════════════════════════════════ |
08
Impact Analysis ist die Kehrseite von Lineage: Während Lineage fragt "Woher kommen meine Daten?", fragt Impact Analysis "Was passiert downstream, wenn ich hier etwas ändere?" Sie ist der wichtigste Anwendungsfall von Lineage in der täglichen Praxis.
→ Schemaänderung an Quelltabelle: Spalte umbenennen, Datentyp ändern, Tabelle aufteilen, neue NOT-NULL-Constraint.
→ ETL-Logik-Änderung: KPI-Berechnungsregel anpassen, Filter ändern, Datumsbasis wechseln.
→ ERP-Upgrade: Neue ERP-Version kann Tabellennamen, Feldbezeichnungen oder Datenstrukturen verändern.
→ Berechtigungsänderung: Ein Service Account verliert Leserechte auf eine Quelltabelle.
→ Infrastrukturwechsel: Quelldatenbank wird auf einen neuen Server umgezogen — Verbindungsstrings in allen Downstream-Systemen müssen aktualisiert werden.
|
IMPACT-ANALYSIS-CHECKLISTE VOR JEDER ÄNDERUNG: ══════════════════════════════════════════════════════════════ SCHRITT 1: Betroffenes Objekt identifizieren → Tabelle / View / Spalte / ETL-Job / Dataset
SCHRITT 2: SQL-Diagnose-Toolkit ausführen (Kapitel 4) → DMV 4: Direkte Abhängigkeiten → DMV 2: Vollständige rekursive Abhängigkeitskette → Ergebnis: Liste aller betroffenen Objekte je Schicht
SCHRITT 3: Power BI Lineage-Ansicht prüfen (Kapitel 5) → Welche Datasets nutzen die betroffene Datenquelle? → Welche Reports nutzen diese Datasets?
SCHRITT 4: Lineage-Dokumentation abgleichen (Kapitel 3) → Stimmen die automatisch gefundenen Abhängigkeiten mit der Dokumentation überein? Abweichungen dokumentieren.
SCHRITT 5: Betroffene Owner benachrichtigen → Je Schicht: Owner der abhängigen Objekte informieren → Abnahmeplan: Wer testet nach der Änderung was?
SCHRITT 6: Test-Deployment auf Nicht-Produktionsumgebung → Änderung auf Test einspielen → Alle dokumentierten Testfälle der Abhängigkeiten prüfen
SCHRITT 7: Produktions-Deployment + sofortiger Smoke-Test → Alle kritischen Downstream-Reports nach Änderung prüfen ══════════════════════════════════════════════════════════════ |
|
-- Automatisierter Impact-Report: alle Objekte downstream einer Tabelle -- Mit Kontaktinformationen aus einer Owner-Mapping-Tabelle SELECT dep_chain.Tiefe, dep_chain.Ziel AS Betroffenes_Objekt, o.type_desc AS Objekttyp, own.owner_email AS Owner_Email, own.owner_name AS Owner_Name, o.modify_date AS Zuletzt_geaendert, qs.last_execution_time AS Zuletzt_ausgefuehrt FROM ( -- Rekursive Kette aus DMV 2 (vereinfacht): SELECT referenced_entity_name AS Ziel, 1 AS Tiefe FROM sys.sql_expression_dependencies WHERE referenced_entity_name = 'Belege' -- Zu ändernde Tabelle ) dep_chain JOIN sys.objects o ON dep_chain.Ziel = o.name LEFT JOIN dbo.Lineage_Owner_Mapping own -- Eigene Mapping-Tabelle ON dep_chain.Ziel = own.object_name LEFT JOIN sys.dm_exec_procedure_stats qs ON o.object_id = qs.object_id ORDER BY dep_chain.Tiefe, dep_chain.Ziel; |
09
Lineage-Dokumentation hat denselben Feind wie jede andere Dokumentation: Sie veraltet, wenn niemand sie aktiv pflegt. Die Lösung liegt nicht in besserer Disziplin — sie liegt in besseren Prozessen.
|
Rolle |
Aufgabe |
Zeitaufwand |
|
**Lineage Owner** |
Fachliche Verantwortung für eine Datenpipeline — stellt sicher, dass das Lineage-Dokument aktuell ist |
1–2 Std./Quartal je Pipeline |
|
**Lineage Steward** |
Technische Pflege — aktualisiert Dokumente bei Pipeline-Änderungen, führt SQL-Diagnose-Skripte aus |
Bei jeder Pipeline-Änderung |
|
**Lineage Admin** |
Verwaltet Tool-Konfiguration (Purview/OpenMetadata), koordiniert Scan-Zyklen, moderiert Quarterly Review |
2–4 Std./Monat |
Statt regelmäßiger manueller Reviews ist trigger-basierte Pflege effizienter: Die Dokumentation wird aktualisiert, wenn ein konkretes Ereignis eingetreten ist.
|
PFLEGE-TRIGGER FÜR LINEAGE-DOKUMENTE: ────────────────────────────────────────────────────────────── TRIGGER: DDL-Änderung an Quelltabelle → Sofortige Benachrichtigung des Lineage Steward → Lineage-Dokument innerhalb von 5 Arbeitstagen aktualisieren → Impact-Analyse ausführen und dokumentieren
TRIGGER: ETL-Job-Änderung (Deployment) → Deployment-Pipeline triggert Lineage-Dokument-Review → In dbt: automatisch durch schema.yml-Änderung
TRIGGER: Neues Power BI Dataset / Report → Vor Veröffentlichung: Lineage-Dokument als Pflichtbedingung → Endorsement (Promoted) nur mit vollständiger Lineage
TRIGGER: ERP-Versionsupdate → Vor Update: Impact-Analyse für alle ERP-nahen Lineage-Dokumente → Nach Update: Regressionstest aller Downstream-Objekte
TRIGGER: Jährlicher Audit (Data Council) → Alle Lineage-Dokumente auf Aktualität prüfen → Verwaiste Objekte aus DMV 7 bereinigen ────────────────────────────────────────────────────────────── |
|
-- DDL-Trigger: Benachrichtigung bei Schemaänderungen an überwachten Tabellen CREATE OR ALTER TRIGGER trg_Schema_Change_Alert ON DATABASE FOR ALTER_TABLE, DROP_TABLE, RENAME AS BEGIN SET NOCOUNT ON;
DECLARE @EventData XML = EVENTDATA(); DECLARE @ObjName NVARCHAR(256) = @EventData.value('(/EVENT_INSTANCE/ObjectName)[1]', 'NVARCHAR(256)'); DECLARE @EventType NVARCHAR(100) = @EventData.value('(/EVENT_INSTANCE/EventType)[1]', 'NVARCHAR(100)'); DECLARE @LoginName NVARCHAR(256) = @EventData.value('(/EVENT_INSTANCE/LoginName)[1]', 'NVARCHAR(256)');
-- Nur überwachte Tabellen auslösen: IF @ObjName IN ('Belege', 'Kunden', 'Artikel', 'Bestellungen') BEGIN -- Ereignis in Audit-Log schreiben: INSERT INTO dbo.Schema_Change_Log (ChangeDate, ObjectName, EventType, LoginName, EventData) VALUES (GETDATE(), @ObjName, @EventType, @LoginName, @EventData);
-- E-Mail-Benachrichtigung (erfordert Database Mail): EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DBA-Alerts', @recipients = 'lineage-owner@firma.de', @subject = 'LINEAGE ALERT: Schemaänderung an ' + @ObjName, @body = 'Tabelle ' + @ObjName + ' wurde durch ' + @LoginName + ' geändert (' + @EventType + ').' + CHAR(13) + 'Bitte Lineage-Dokument prüfen.'; END END; |
10
Dieser Plan führt ein Team mit 2–5 Personen in 30 Tagen von einer undokumentierten Systemlandschaft zu einer vollständig dokumentierten, aktiv gepflegten Lineage-Struktur für alle kritischen Datenpipelines.
|
|
VOR DEM START Identifizieren Sie die drei kritischsten Datenpipelines Ihres Unternehmens — diejenigen, bei denen falsche oder unvollständige Daten die größten Geschäftsauswirkungen hätten. Diese drei Pipelines werden im 30-Tage-Plan vollständig dokumentiert. Alle anderen folgen danach nach demselben Muster. |
■ TAG 1–2: SYSTEMLANDKARTE ERSTELLEN
■ Alle Systeme inventarisieren, die Daten erzeugen, transformieren oder verbrauchen: ERP, CRM, BI-Tools, ETL-Jobs, APIs, manuelle Excel-Prozesse
■ Für jedes System: Wer ist Owner? Welche Daten fließen rein, welche raus?
■ Erste grobe Lineage-Karte als Whiteboard-Skizze: Systeme als Knoten, Datenflüsse als Pfeile
■ Kritischste drei Pipelines benennen — diese werden in Wochen 2 und 3 vollständig dokumentiert
■ TAG 3–4: SQL-DIAGNOSE AUSFÜHREN
■ Alle 7 SQL-Skripte aus Kapitel 4 auf der Produktionsdatenbank ausführen — Ergebnisse exportieren
■ DMV 3 (Zirkuläre Abhängigkeiten): Ergebnis sofort prüfen — Zirkel sind kritische Risiken
■ DMV 7 (Verwaiste Objekte): Liste aller Objekte ohne Referenzierer — erste Bereinigungskandidaten
■ Abhängigkeitsgraph aus DMV 2 für die kritischsten Quelltabellen exportieren
■ TAG 5–7: TOOL-ENTSCHEIDUNG & SETUP
■ Tool-Entscheidung treffen (Kapitel 7): Purview / OpenMetadata / dbt / Nur-Manuell?
■ Gewähltes Tool installieren oder Trial aktivieren — ersten automatischen Scan starten
■ Automatisch erkannte Lineage mit der manuellen Systemkarte abgleichen: Was fehlt? Was ist falsch?
■ Lineage-Dokumentationsvorlage (Kapitel 3) im Wiki einrichten — bereit für Woche 2
■ TAG 8–10: PIPELINE 1 — SCHICHT FÜR SCHICHT
■ Vollständige Lineage-Vorlage (Kapitel 3) für Pipeline 1 ausfüllen — alle 5 Schichten
■ Interview mit ETL-Entwickler und Key-User: Stimmt die Dokumentation? Was fehlt?
■ Transformationslogik in menschenlesbarer Form dokumentieren — nicht nur "ETL-Job läuft täglich"
■ Manuelle Zwischenschritte explizit markieren — diese sind Risikopunkte
■ TAG 11–13: IMPACT-ANALYSE & ABHÄNGIGKEITEN
■ Impact-Analyse-Workflow (Kapitel 8) für Pipeline 1 durchführen: Alle Downstream-Objekte identifizieren
■ Owner-Mapping-Tabelle anlegen: Welches Objekt hat welchen technischen und fachlichen Owner?
■ DDL-Trigger (Kapitel 9) für alle Quelltabellen von Pipeline 1 einrichten
■ Test-Szenario: "Was passiert, wenn Quelltabelle XY morgen eine Spalte verliert?" — Impact dokumentieren
■ TAG 14: PIPELINE 1 ABNAHME
■ Fertige Lineage-Dokumentation durch zweite Person auf Vollständigkeit prüfen
■ Fachlichen Owner (Data Owner laut Governance-Kit) zur Abnahme einladen
■ Offene Punkte schließen — Dokument als "Freigegeben v1.0" markieren
■ Pipeline-1-Lineage im Power BI Endorsement verankern (Kapitel 5)
■ TAG 15–18: PIPELINE 2 UND 3 DOKUMENTIEREN
■ Lineage-Vorlagen für Pipeline 2 und 3 ausfüllen — parallel, je ein Team-Mitglied pro Pipeline
■ dbt einführen (falls entschieden): Erste Modelle mit schema.yml-Dokumentation versehen
■ Cross-Pipeline-Abhängigkeiten identifizieren: Wo fließen Daten aus Pipeline 1 in Pipeline 2?
■ Gemeinsamen Lineage-Graphen aller drei Pipelines als Mermaid-Diagramm erstellen
■ TAG 19–21: POWER BI LINEAGE VERVOLLSTÄNDIGEN
■ Power BI Service Lineage-Ansicht öffnen: Alle Datasets, Reports und Dashboards sichtbar machen
■ Für jedes Dataset: Datenquellen-Verbindung mit der SQL-Lineage-Dokumentation verknüpfen
■ Python-Skript aus Kapitel 5 ausführen: Alle Dataset-Datenquellen automatisch exportieren
■ Datasets mit vollständiger Lineage als "Promoted" endorsen — Datasets ohne Lineage markieren
■ TAG 22–25: GOVERNANCE-STRUKTUREN EINRICHTEN
■ Lineage-Rollen benennen (Kapitel 9): Lineage Owner, Steward, Admin je Pipeline
■ Alle Pflege-Trigger in Kalender und Prozessen verankern: DDL-Alert, Deployment-Trigger, Audit
■ Change-Management-Prozess erweitern: Schemaänderungen erfordern ab sofort Impact-Analyse
■ Quarterly Lineage Review als Termin in Data Council (aus Governance-Kit) integrieren
■ TAG 26–28: VERWAISTE OBJEKTE BEREINIGEN
■ DMV 7 erneut ausführen: Verwaiste Objekte nach Kenn-Owner-Analyse bereinigen oder archivieren
■ Undokumentierte ETL-Jobs und SQL-Jobs inventarisieren und priorisiert nachdokumentieren
■ Manuelle Zwischenschritte (Excel-Importe etc.) automatisieren oder zumindest protokollieren
■ Bekannte Lineage-Lücken in den Backlog aufnehmen — priorisiert nach Geschäftsrisiko
■ TAG 29–30: ABSCHLUSS & ÜBERGABE
■ Alle drei Lineage-Dokumente finalisieren und im Wiki veröffentlichen
■ Team-Session: Alle Beteiligten kennen die Dokumentation und wissen, wie sie sie pflegen
■ KPIs festhalten: Anzahl dokumentierter Pipelines, Anzahl identifizierter Abhängigkeiten, DDL-Trigger aktiv
■ Roadmap für die nächsten 90 Tage: Welche weiteren Pipelines werden als nächstes dokumentiert? ■
|
|
ERGEBNIS NACH 30 TAGEN Ihr Ergebnis nach 30 Tagen: Drei vollständig dokumentierte, End-to-End-Datenpipelines mit Lineage-Vorlagen, automatischer Schemaänderungs-Benachrichtigung, validiertem Power-BI-Lineage-Graph, Impact-Analyse-Workflow und einem Governance-Modell, das Lineage dauerhaft aktuell hält — als Basis für alle weiteren Pipelines. |
Die in diesem Dokument enthaltenen SQL-Skripte, Methoden, Architekturempfehlungen und Tool-Vergleiche wurden nach bestem Wissen und Gewissen auf Basis langjähriger praktischer Erfahrung in der Datenarchitektur und BI-Entwicklung erstellt. Dennoch kann keine Gewähr für Vollständigkeit, Richtigkeit oder universelle Anwendbarkeit übernommen werden.
Der Autor übernimmt ausdrücklich keinerlei Haftung für Schäden, die aus der Anwendung der beschriebenen Methoden und Skripte entstehen, einschließlich, aber nicht beschränkt auf: Datenverlust, Systemausfälle, fehlerhafte Impact-Analysen oder Compliance-Verstöße.
Alle SQL-Skripte in diesem Dokument wurden für Microsoft SQL Server entwickelt. DDL-Trigger (Kapitel 9) greifen in Datenbank-Ereignisse ein und müssen vor dem Produktionseinsatz gründlich in einer Testumgebung erprobt werden. Fehlkonfigurierte DDL-Trigger können die Datenbankperformance beeinträchtigen oder DDL-Operationen blockieren.
Alle Angaben zu Microsoft Purview, OpenMetadata, dbt und Atlan beziehen sich auf öffentlich verfügbare Informationen zum Stand März 2026. Funktionsumfang, Preise und Integrationsmöglichkeiten ändern sich regelmäßig. Holen Sie vor Investitionsentscheidungen aktuelle Herstellerinformationen ein.
Dieses Dokument und alle Inhalte sind urheberrechtlich geschützt. © 2026 Sascha Hess, xenosystems.de. Alle Rechte vorbehalten.
Microsoft Purview, Power BI, Azure Data Factory und SQL Server sind eingetragene Marken der Microsoft Corporation. dbt ist ein Produkt von dbt Labs, Inc. OpenMetadata steht unter der Apache-2.0-Lizenz und ist ein Produkt der OpenMetadata Foundation. Atlan ist ein Produkt der Atlan Technologies Pte. Ltd. Alle anderen genannten Produkt- und Unternehmensnamen sind Eigentum ihrer jeweiligen Inhaber.
Es gilt ausschließlich deutsches Recht. Gerichtsstand für alle Streitigkeiten ist, soweit gesetzlich zulässig, Weimar, Thüringen, Deutschland.
Sascha Hess ist Diplom-Biologe und IT-Professional mit über 20 Jahren Erfahrung in der Administration von ERP-, BI- und Datenbanksystemen sowie in der Datenarchitektur mittelständischer Unternehmen. Er hat mehr als 30 Data-Lineage- und Data-Governance-Projekte begleitet — von der ersten Systemkartierung bis zur vollautomatisierten Lineage-Überwachung mit Microsoft Purview und dbt.
Sein Ansatz verbindet naturwissenschaftliche Präzision mit hochgradiger IT-Spezialisierung. Schwerpunkte: SQL Server Performance-Tuning, ERP-Einführungen, Business Intelligence (Power BI, DeltaMaster), Data Lineage, Data Governance und IT-Interim-Management.
Web: www.xenosystems.de | E-Mail: info@xenosystems.de | Standort: Weimar, Thüringen / Remote
|
Service |
Beschreibung |
|
Lineage-Quickstart |
Strukturierter 2-Tages-Workshop: Systemkartierung, SQL-Abhängigkeitsanalyse, vollständige Lineage-Dokumentation Ihrer kritischsten Datenpipeline und Einrichtung des Governance-Modells. |
|
Data Architecture Review |
Vollständige Analyse Ihrer Datenpipelines: Lineage-Lücken, Impact-Risiken, manuelle Zwischenschritte, Tool-Empfehlung und priorisierter Dokumentationsplan. Scope: 2–3 Tage. |
|
dbt-Einführung |
Einführung von dbt Core in Ihre SQL-Transformationsumgebung — Projektstruktur, Modellierung, Dokumentation, Tests und Lineage-Graph. Scope: 3–5 Tage. |
|
Data Governance Quickstart |
Governance-Rollen, KPI-Glossar, DSGVO-Check und Data-Council-Prozess — in 3 Tagen einsatzbereit. |
|
SQL Server DB Health Check |
Professioneller Audit Ihres SQL Servers — Managementreport, Risikobewertung und Maßnahmenplan. Scope: 3–5 Tage. |
Vollständiges Dokument
Strategische Wissens-Roadmap · Checklisten · Praxisbeispiele
49,90 €
Sichere Zahlung über PayPal · Sofort-Download nach Zahlungseingang