Modellsynchronisierung von dbt zu Metabase und umgekehrt
Globale Dokumentation mit lokalem Input
Theoretisch ist die ordnungsgemäße Dokumentation von BI-Prozessen ebenso grundlegend wie die Behandlung der Daten selbst. In der Praxis wird Ersteres jedoch oft übersehen, weil die Priorität auf der Bereitstellung von Ergebnissen in Form von Berichten und Dashboards liegt. Dies ist ein weit verbreiteter Irrtum, denn eine umfassende Dokumentation kann bei künftigen Prozessen Zeit (und Geld) sparen. In diesem Artikel heben wir die Bedeutung der Dokumentation der Datenarchitektur in Business Intelligence hervor und stellen eine Lösung für die Modellsynchronisation von dbt zu Metabase vor, die den Zugriff auf Tabellenbeziehungen, Modell- und Spaltenbeschreibungen, semantische Typen und Expositionen erleichtert.
“Je breiter der BI-Stack wird, desto schwieriger wird es, den Überblick zu behalten und die Nuancen entlang des Pipeline-Prozesses zu dokumentieren”
Die Bedeutung der Dokumentation der Datenarchitektur für Business Intelligence
Kurz gesagt, die angemessene Dokumentation der Datenarchitektur ist wichtig für Business Intelligence, weil sie dazu beiträgt, dass die analysierten Daten genau und zuverlässig sind. Dies ist unerlässlich, um auf der Grundlage der Daten fundierte Geschäftsentscheidungen zu treffen. Ein klares Verständnis der Datenstruktur ermöglicht es den Anwendern daher zu wissen, wie die Daten organisiert sind und wie auf sie zugegriffen werden kann. Dazu gehören Informationen über die Datenquellen, das Datenmodell und die Beziehungen zwischen den verschiedenen Datenelementen.
Außerdem trägt eine angemessene Dokumentation dazu bei, die Wartbarkeit des BI-Systems im Laufe der Zeit zu verbessern. Sie ermöglicht es neuen Benutzern, die Daten und ihre Verwendung schnell zu verstehen. Darüber hinaus wird sichergestellt, dass Änderungen an der Datenstruktur ordnungsgemäß dokumentiert und an alle relevanten Beteiligten weitergegeben werden.
Die Herausforderungen
Je umfangreicher der BI-Stack wird, desto schwieriger wird es, den Überblick zu behalten und die Nuancen entlang des Pipeline-Prozesses zu dokumentieren. Dies erfordert eine sich wiederholende Dokumentation in jedem Schritt des Prozesses, was letztendlich die Qualität der Dokumentation oder sogar ihre Erstellung als Ganzes beeinträchtigt. Darüber hinaus erschöpft der Druck, der auf Datenanalysten ausgeübt wird, um innerhalb enger Fristen Ergebnisse zu erzielen, oft alle Kapazitäten, was wiederum den Dokumentationsprozess depriorisiert.
Die Lösungen
Da der Schwerpunkt der aktuellen und neuen Datenwerkzeuge fast ausschließlich auf den Datenprozessen und nicht auf ihrer Dokumentation liegt, ist es nicht verwunderlich, dass letztere oft übersehen wird. Glücklicherweise ändert sich dies, da neuere Tools wie dbt (Data Build Tool) die Erstellung und Visualisierung der Dokumentation erleichtern.
dbt eigenständige Dokumentation
dbt docs generate ist ein Befehl in der dbt CLI (command-line interface), der die Dokumentation für Ihr dbt-Projekt erzeugt. In dbt cloud ist die Generierung dieser Dokumentation ebenso einfach (https://docs.getdbt.com/docs/collaborate/build-and-view-your-docs). Diese Dokumentation enthält Informationen über die Modelle, Tests und Seed-Dateien Ihres Projekts sowie über die Beziehungen zwischen diesen Elementen.
Wenn Sie den Befehl dbt core docs generate ausführen, legt dbt in Ihrem Projekt ein Verzeichnis docs/ an und erstellt in diesem Verzeichnis Markdown-Dateien für jede Modell-, Test- und Seed-Datei in Ihrem Projekt. Diese Markdown-Dateien enthalten Informationen über den SQL-Code in jeder Datei sowie alle Kommentare oder Dokumentationen, die Sie in Ihrem dbt-Projekt geschrieben haben.
dbt core docs serve ist ein weiterer Befehl in der dbt CLI, mit dem Sie die Dokumentation anzeigen können, die mit dem Befehl dbt core docs generate erstellt wurde. In dbt cloud wird Ihre Dokumentation in der Benutzeroberfläche selbst zur Verfügung gestellt. Wenn Sie dbt core docs serve ausführen, wird dbt einen lokalen Webserver starten, der die Dokumentation für Ihr Projekt bereitstellt. Sie können dann die Dokumentation ansehen, indem Sie die von dbt bereitgestellte URL in Ihrem Webbrowser aufrufen.
Sowohl der Befehl dbt core docs generate als auch der Befehl dbt core docs serve sind nützlich, um die Dokumentation für Ihr dbt-Projekt zu erstellen und einzusehen, was Ihnen helfen kann, die Struktur und den Aufbau Ihres Projekts zu verstehen. Sie können auch für andere, die an Ihrem Projekt arbeiten, hilfreich sein, da sie einen klaren Überblick über die Komponenten des Projekts und deren Zusammenspiel bieten.
“Das dbt-metabase-Paket löst dieses Problem, indem es Tabellenbeziehungen, Modell- und Spaltenbeschreibungen sowie semantische Typen (z.B. Währung, Kategorie, URL) von dbt auf Metabase-Datenmodelle überträgt.”
Metabase-Dokumentation
Metabase, ein Cloud-basiertes Datenvisualisierungstool mit guten Self-Service-BI-Funktionen, bietet einen Abschnitt “Datenreferenz”, in dem eine Sammlung von Seiten nach Datenbank und dann nach Tabellen in dieser Datenbank geordnet ist. Beachten Sie, dass jede Tabelle oder Spalte nur dann eine Beschreibung enthält, wenn Ihr Administrator etwas in den Abschnitt “Datenmodell” der Administrationsoberfläche geschrieben hat.
Die optimale Lösung: Synchronisierung von dbt und Datenbank
Wie bereits erwähnt, ermöglichen sowohl dbt als auch Metabase das Einfügen von Tabellen- und Spaltenbeschreibungen sowie von Informationen über die Beziehung zwischen diesen Elementen. Dieser Prozess wird jedoch zu einer Wiederholung, wenn dieselben Informationen in beiden Plattformen eingegeben werden müssen, was wiederum dazu führt, dass sie ignoriert oder sogar vergessen werden.
Das Paket dbt-metabase löst dieses Problem, indem es Tabellenbeziehungen, Modell- und Spaltenbeschreibungen sowie semantische Typen (z.B. Währung, Kategorie, URL) von dbt auf Metabase-Datenmodelle überträgt. Darüber hinaus erleichtert dbt-metabase auch die Extraktion von Expositionen aus Metabase, was zeigt, wie dbt-Modelle in BI exponiert werden, wodurch sich der Kreislauf zwischen ELT, Modellierung und Verbrauch schließt.
In einer Produktionsumgebung können die Exposures grafisch als Lineage auf “dbt docs generate” nach dem Befehl dbt-metabase exposures dargestellt werden. Dies macht dbt docs zu einem nützlichen Dienstprogramm für die Introspektion des Datenmodells aus der Quellnutzung ohne zusätzliche/wiederholte menschliche Eingaben.
Verwendung des Pakets
Die Anleitung ist etwas technisch, und es kann einige Versuche und Irrtümer erfordern, bis die Synchronisierung von dbt mit der Datenbank erfolgreich ist. Im Folgenden stellen wir die Herausforderungen vor, auf die wir gestoßen sind, sowie die Lösungen, die eine erfolgreiche Anwendung des Pakets ermöglicht haben.
– 1.1 – zuerst die Konfigurationsdatei einrichten
Der einfachste Ansatz bestand darin, zunächst eine dbt-metabase config-Datei einzurichten und erst dann die Hauptbefehle (d.h. dbt-metabase models/exposures) auszuführen. Mit dem Befehl dbt-metabase config können Sie eine interaktive Konfigurationssitzung starten, in der Sie Standardeinstellungen für Argumente zwischenspeichern können. Dabei wird eine config.yml in ~/.dbt-metabase erstellt. Dies ist besonders nützlich für Argumente, die bei jedem Aufruf wiederholt werden, wie metabase_user, metabase_host, metabase_password, dbt_manifest_path usw.
– 1.2 – Name der Metabase-Datenbank
Ein weiterer wichtiger Hinweis, den Sie beim Einrichten der Konfigurationsdatei beachten sollten, ist, dass es sich bei der Eingabe von “metabase database name” um den Namen handeln muss, der Ihrer Datenbank in metabase gegeben wurde (siehe Abbildung unten), und NICHT um den in der Quelle verwendeten Namen wie “RAW” oder “REPORTING” (es sei denn, Sie haben Ihre metabase database so benannt). In der Abbildung unten sehen Sie, wo Sie den Namen der Metadatenbank finden können.
– 2 – Speichern Sie die Expositionsdatei im Modellordner
Vergewissern Sie sich, dass die yml-Datei, die zum Speichern der Exposures erstellt wurde, im Modellordner gespeichert ist, da dbt sonst die Exposures beim Befehl dbt docs generate nicht anzeigen kann.
Insgesamt ist die Dokumentation der Datenarchitektur entscheidend für die erfolgreiche Implementierung und Nutzung eines Business-Intelligence-Systems und ein wesentlicher Bestandteil eines jeden BI-Projekts. Aus diesem Grund ist eine zugängliche Dokumentation des Prozesses von der Datenquelle bis zum Bericht so wichtig, nicht nur um den Überblick über die Daten zu behalten, sondern auch um leicht zu beschreiben, wie und wo die Daten verwendet werden. Obwohl sowohl dbt als auch Metabase die Möglichkeit bieten, Tabellen, Spalten und Beziehungen zwischen diesen Elementen zu beschreiben, bedeutet dies, dass wertvolle Ressourcen verwendet werden, um die gleiche Arbeit zweimal zu dokumentieren. Dieses Problem wird mit dbt-metabase gelöst, einem Paket, das Tabellenbeziehungen, Modell- und Spaltenbeschreibungen und semantische Typen (z. B. Währung, Kategorie, URL) in Ihr Metabase-Datenmodell überträgt und dbt-Modellexpositionen aus Metabase extrahiert.
Nützliche Links
Dbt: https://www.getdbt.com/
Metabase: https://www.metabase.com/
Synchronisierung zwischen Dbt und Metabase: https://pypi.org/project/dbt-metabase/