Produktionsreife Notebooks: Leitplanken und Git-Integration
Von Mirko Peters ·
Willkommen zurück beim Podcast-Begleitblog! In diesem Beitrag zeigen wir Ihnen ausführlich, wie Sie über Ad-hoc-Skripting hinausgehen, indem Sie Ihre Fabric-Notebooks wie produktive Software behandeln. Wenn Sie schon einmal mit fragilen Datenpipelines, nicht nachvollziehbaren manuellen Änderungen oder Skripten zu kämpfen hatten, die nachts stillschweigend abbrechen, ist dieser Leitfaden genau rich
Automatisch mit KI aus dem Originalbeitrag übersetzt. Englisches Original lesen
Willkommen zurück beim Podcast-Begleitblog! In diesem Beitrag zeigen wir Ihnen ausführlich, wie Sie über Ad-hoc-Skripting hinausgehen, indem Sie Ihre Fabric-Notebooks wie produktive Software behandeln. Wenn Sie schon einmal mit fragilen Datenpipelines, nicht nachvollziehbaren manuellen Änderungen oder Skripten zu kämpfen hatten, die nachts stillschweigend abbrechen, ist dieser Leitfaden genau richtig für Sie. Wir zeigen, wie Sie Git-Branching, Parametrisierung und robuste Prüfungen der Datenzuverlässigkeit wie Canary-Abfragen implementieren, damit Ihre Datenlandschaft zuverlässig bleibt.
Eine vollständige Audio-Anleitung zu diesen Konzepten finden Sie in unserer passenden Episode: Use Fabric Notebooks for Data Transformation and ML.
Warum Notebooks (und warum jetzt)
Seit Jahren greifen Organisationen auf das klassische Hin und Her aus „Power Query + Excel + verstreute Skripte“ zurück, um Aufgaben zu erledigen. Diese Werkzeuge haben durchaus ihre Berechtigung, doch bei der unternehmensweiten Datentransformation führen sie schnell zu technischer Schuld. Es ist an der Zeit, dieses Hin und Her zu beenden und alle Transformationen an einem Ort mit lesbarem, testbarem Code zu bündeln.
Mit code-first Notebooks gewinnen Sie enorme Transparenz und Nachvollziehbarkeit. Jeder Filter, jeder Join und jedes Feature ist im Code vollständig sichtbar und wird über die Zeit versioniert. Darüber hinaus erschließen Sie Skalierung on demand. Moderne Datenplattformen lassen Spark Millionen von Zeilen mühelos verarbeiten, ohne dass große Datenmengen aus dem Lakehouse verschoben werden müssen.
Durchgängiges Muster (so sieht Gutes aus)
Für eine robuste Datenarchitektur brauchen Sie ein vorhersehbares Muster. Das branchenübliche Bronze-Silber-Gold-Muster bietet einen strukturierten Weg für Ihre Daten:
- Bronze (Rohdaten): Nehmen Sie Ihre Rohdateien oder Streaming-Daten direkt in Pfaden wie
/Tables/bronze/*auf. Ziel ist hier eine strikte Schemadurchsetzung und das Isolieren fehlerhafter Zeilen, damit diese die nachgelagerten Analysen nicht verfälschen. - Silber (bereinigt und harmonisiert): Vereinheitlichen Sie Datentypen, Zeitzonen und Kodierungen. Diese Schicht ist für die Deduplizierung, die Behandlung von Slowly Changing Dimensions (SCD) und die Festlegung verbindlicher Geschäftsschlüssel verantwortlich.
- Gold (bereit für Analysen und ML): Führen Sie erweitertes Feature Engineering durch, etwa die Berechnung von Lags, Kohorten, RFM-Werten und Saisonalitäten. Schreiben Sie Ihre finalen Ergebnisse als Delta-Tabellen inklusive Partitionierung und Z-Order-Optimierung. So sind sie bereit, als Power BI-Semantikmodell bereitgestellt oder direkt in Machine-Learning-Modelle eingespeist zu werden.
Minimaler Notebook-Workflow (Konzept)
Wenn Sie ein Produktions-Notebook schreiben, sollte die Struktur einem klaren, wiederholbaren Ablauf folgen. Konzeptionell sieht das so aus:
- Lesen: Laden Sie Ihre Daten mit Befehlen wie
spark.read.format("delta").load("/Tables/bronze/sales"). - Bereinigen/Verknüpfen: Führen Sie PySpark- oder pandas-Operationen aus, um Dimensionen und Fakten zu vereinheitlichen, und prüfen Sie dabei fortlaufend die Zeilenanzahl.
- Features: Wenden Sie Geschäftslogik, gleitende Fenster, kategoriale Kodierungen und Ausreiserregeln an.
- Schreiben: Speichern Sie die transformierten Daten mit
df.write.format("delta").mode("overwrite").save("/Tables/gold/sales_features")zurück. - Veröffentlichen: Erstellen oder aktualisieren Sie Ihr nachgelagertes Power BI-Semantikmodell oder starten Sie automatisch einen Trainingsjob für Ihre ML-Modelle.
Governance und Zusammenarbeit (die Leitplanken)
Produktive Software braucht Leitplanken, und Daten-Notebooks sind da keine Ausnahme. Notebooks wie produktiven Code zu behandeln bedeutet, professionelle Praktiken der Softwareentwicklung zu übernehmen:
- Git-Integration: Setzen Sie auf eine klare Branching-Strategie vom Dev- über den Test- bis zum Main-Branch und verlangen Sie vor jedem Zusammenführen immer einen Pull Request.
- Parameter: Vermeiden Sie fest codierte Werte. Verwenden Sie stattdessen Parameter für Umgebungs-URLs, Tabellenpfade und Feature-Flags.
- RBAC: Setzen Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control) konsequent durch, indem Sie Lese- und Schreibberechtigungen auf Lakehouse- und Notebook-Ebene eng begrenzen. Vermeiden Sie es, allen Teammitgliedern breite Mitwirkenden-Rollen zuzuweisen.
- Audit und Herkunftsnachweis: Aktivieren Sie die Aktivitätsprotokolle des Arbeitsbereichs und versehen Sie jeden Lauf mit Korrelations-IDs, damit Sie den Ausführungsverlauf lückenlos nachverfolgen können.
Prüfungen der Datenzuverlässigkeit (schnell und wirksam)
Datenfehler abzufangen, bevor sie Ihre Endbenutzer erreichen, ist entscheidend für das Vertrauen in die Daten. Schnelle und wirksame Zuverlässigkeitsprüfungen sparen Ihnen unzählige Stunden bei der Fehlersuche:
- Schemaabweichungen: Prüfen Sie, ob die erwarteten Spalten und Datentypen vorhanden sind, bevor Schreibvorgänge zugelassen werden.
- Canary-Abfragen: Überprüfen Sie zentrale Kennzahlen – etwa die erwartete Zeilenanzahl und Schwellenwerte für NULL-Werte – unmittelbar nach dem Schreibvorgang.
- Idempotenz: Erstellen Sie partitionierte Upserts und Merges, sodass ein erneuter Lauf einer Pipeline niemals zu doppelt gezählten Daten führt.
- Snapshots: Nutzen Sie Delta Time Travel oder erstellen Sie Kopien Ihrer Daten vor der Veröffentlichung, um bei einem fehlerhaften Batch schnell zurückrollen zu können.
Übergabe an Power BI (reibungslos, nicht fragil)
Der Übergang von Ihrer Data-Engineering-Ebene zur Business-Intelligence-Ebene sollte nahtlos verlaufen. Erstellen Sie dafür immer ein robustes semantisches Modell über Ihren Gold-Tabellen, statt Berichte aus ad-hoc exportierten Dateien zu laden. Parametrisieren Sie die Arbeitsbereichs- und Dataset-IDs, damit Bereitstellungen zwischen den Umgebungen problemlos gelingen, und planen Sie die Aktualisierung Ihrer Berichte so, dass sie erst starten, nachdem die Schreibvorgänge in die Gold-Tabellen erfolgreich abgeschlossen sind. Erwägen Sie außerdem, Kacheln zur Datenqualität – etwa Aktualitätsindikatoren und Zeilenanzahlen – direkt in Ihre Berichte aufzunehmen.
Grundlegende Sicherheitsmaßnahmen
Sicherheit sollte nie nachträglich bedacht werden. Schützen Sie Ihre Infrastruktur, indem Sie diese grundlegenden Regeln befolgen:
- Keine Geheimnisse in Notebooks: Verwenden Sie immer Key Vault-gestützte Verbindungen, anstatt Verbindungszeichenfolgen oder Anmeldedaten fest im Code zu hinterlegen.
- Sensible Dimensionen: Trennen Sie sensible Dimensionen mit personenbezogenen Daten (PII) und wenden Sie Sicherheit auf Zeilen- oder Spaltenebene an. Stellen Sie sicher, dass diese Daten in Nicht-Produktionsumgebungen maskiert werden.
- Dienstprinzipale: Verwenden Sie für alle geplanten Ausführungen Dienstprinzipale mit minimalen Berechtigungen, statt sich auf gemeinsam genutzte persönliche Konten zu verlassen.
Tipps zur Leistungsoptimierung
Damit Ihre Notebooks blitzschnell und kosteneffizient laufen, behalten Sie diese Tipps zur Leistungsoptimierung im Blick:
- Verwenden Sie PySpark für aufwendige verteilte Joins und reservieren Sie pandas für kleine Korrekturen im Arbeitsspeicher.
- Partitionieren Sie Ihre Daten nach Datum oder nach natürlichen Schlüsseln mit hoher Kardinalität und nutzen Sie Optimierung und Z-Ordering für häufig abgefragte Spalten.
- Halten Sie häufig genutzte Dimensionstabellen im Arbeitsspeicher vor und verteilen Sie kleine Nachschlagetabellen bei Joins per Broadcast, um den Shuffle-Aufwand zu minimieren.
Schnelle Erfolge (diese Woche)
Wenn Sie sofort Verbesserungen sehen möchten, erledigen Sie diese schnellen Erfolge noch in dieser Woche:
- Überführen Sie eine unübersichtliche, veraltete Power-Query-Pipeline in ein einziges, sauberes Fabric-Notebook.
- Fügen Sie Canary-Prüfungen und einen Delta-Snapshot-Schritt unmittelbar vor der Veröffentlichung Ihrer Gold-Ebene hinzu.
- Verbinden Sie den Arbeitsbereich Ihrer Notebooks mit Git und richten Sie Branches für Entwicklung, Test und Main ein.
- Parametrisieren Sie Ihre Lakehouse-Pfade und Arbeitsbereichs-IDs, um alle fest codierten Werte zu entfernen.
Anti-Muster, die Sie vermeiden sollten
Meiden Sie diese typischen Fallstricke, die technische Schulden und architektonische Fragilität verursachen:
- Automatisierten Notebook-Code mit manuellen Excel-Datenkorrekturen vermischen.
- CSV-Dateien zurück in den Speicher schreiben, nur um sie anschließend in Power BI zu importieren. Das zerstört Ihre Herkunftsnachweise und die Skalierbarkeit vollständig.
- Geheimnisse und Pfade fest im Code hinterlegen oder bei „schnellen Änderungen“ auf Pull Requests verzichten.
- Ein einziges, riesiges „Alles-in-einem“-Notebook erstellen, statt nach Ebenen zu modularisieren.
Häufige Fragen
Muss ich auf Power Query verzichten?
Nein! Verwenden Sie Power Query dort, wo es für leichte Aufgaben glänzt. Komplexe, fragile oder aufwendige Transformationsschritte sollten Sie jedoch in Notebooks auslagern, um Skalierbarkeit, automatisierte Tests und Wiederverwendbarkeit zu erreichen.
Python oder R?
Beide Sprachen funktionieren auf der Plattform gut. Für umfangreiche unternehmensweite Datentransformationen setzt sich jedoch in der Regel PySpark durch, dank seines umfangreichen Ökosystems und seiner verteilten Verarbeitungsfähigkeiten.
Wie setze ich einen fehlerhaften Lauf zurück?
Sie können einfach Delta Time Travel nutzen, um frühere Tabellenzustände abzufragen, aus einem Snapshot vor dem Lauf wiederherstellen oder einfach den fehlerhaften Notebook-Commit in Ihrem Git-Repository rückgängig machen.
Wir hoffen, dieser Leitfaden hilft Ihnen, Ihre Praxis im Data Engineering weiterzuentwickeln. Um mehr Expertengespräche zu diesen Themen zu hören und tiefer einzusteigen, hören Sie sich unbedingt die vollständige Folge zu Use Fabric Notebooks for Data Transformation and ML an. Bis zum nächsten Mal!