Neues Jahr neue Transformationen: Data Vault trifft auf dbt

Data Engineering mit dbt

Neues Jahr, neue Vorsätze, die die cimt direkt in die Tat umsetzt. Um unsere Partnerschaft mit dbt intern breiter aufzustellen und der Neu- und Wissbegierde im Team gerecht zu werden, haben wir mit Kolleginnen und Kollegen, die noch keine Erfahrung mit dbtData Build Tool – gesammelt haben, in einem kleinen Workshop eine Data-Warehouse-Automatisierung umgesetzt.

Was war der Plan?

Dbt bietet uns die Möglichkeit mit seinem Framework Daten auf Basis von SQL zu transformieren. Ein Standard-Anwendungsfall bei der cimt ist der Aufbau eines Data Warehouse, also einer zentralen Datenbank, in der wir Daten diverser, meist heterogener, Quellen zusammenführen. Also lag es nahe, uns an diesem Anwendungsfall zu orientieren.

Dbt -Cloud bietet uns einen einfachen Zugang über ein Webinterface und arbeitet harmonisch mit Snowflake zusammen, weshalb wir auf diese beiden Tools zur Umsetzung setzen.

Bleibt die Frage nach einem Datensatz, der sich als Basis für einen Workshop eignet. Inspiriert hat uns dafür die DDVUG (Deutsche Data Vault User Group) die einen Datensatz unter der Creative Commons Lizenz bereitstellt.

Damit haben wir Daten, Tools und Motivation und können uns im nächsten Schritt an die Umsetzung machen:

Grobe Ablauf

Bei der cimt hat sich Data-Vault als Modellierung im DWH-Umfeld etabliert, weshalb wir auch in unserem Workshop eine Data-Vault-Modellierung umsetzen wollen.

Eine grundlegende Eigenschaft von dbt ist die Nutzung von Makros, um den gleichen Code wiederholt nutzen zu können. Inzwischen gibt es eine Vielzahl von erprobtem Makro-Paketen, die sich einfach in dbt integrieren lassen. So finden wir für Data-Vault z.B. das Paket datavault4dbt das uns einen Schritt in der Automatisierung spart: Wir müssen nicht jedes Data-Vault-Objekt einzeln modellieren, sondern können für jedes Objekt die bereitgestellten Code-Fragmente nutzen.

Zusätzlich bietet Scalefree ein weiteres Tool, um den Schritt vom Data-Vault-Modell zum dbt-Code zu automatisieren: TurboVault4dbt, dass uns die so genannten dbt-Modelle direkt erzeugen lässt.

Damit haben wir folgende Schritte, die es umzusetzen gilt:

  1. Modellierung der Daten nach Data Vault in einem Turbovault4dbt geeigneten Format
  2. Einlesen der Modellierung durch turbovault4dbt und generieren der dbt-Modelle
  3. Übertragen der Modelle ins dbt-Projekt und ausführen der Modelle

Tag 1

Als Zeitrahmen haben wir uns 1,5 Tage gesteckt und starten an einem Donnerstagmorgen mit dem Aufsetzen der Infrastruktur:

  1. Daten in der Snowflake bereitstellen
  2. git-Projekt anlegen
  3. Accounts auf dbt-cloud anlegen

Dann geht es im Schnelldurchlauf durch die dbt-Grundlagen: Setup dbt-cloud, das Bauen eines ersten Modells, Quellen definieren, Tests definieren etc. Nach 3h war der Vormittag geschafft und bei allen Teilnehmern ein Grundverständnis für dbt aufgebaut. Orientiert haben wir und dabei an dem dbt-Fundamentals-Kurs.

Nach dem Mittagessen starten wir die Data-Vault-Modellierung. Die DDVUG liefert eine gute Strukturierung und Vorschläge zur Umsetzung ihrer Daten in einem Data Vault. Damit ausgerüstet können wir mit dem Aufsetzen des turbovault4dbt-Projektes weiter machen, das in kurzer Zeit geschafft war und schon konnte der erste HUB modelliert werden: Hier musste zunächst die Arbeit mit turbovault4dbt nachvollzogen werden: Zunächst die Metadaten in einer Excel bereitstellen, anschließend können durch ein Pythonscript die benötigten YAML-Konfigurationen und Modelle erstellt werden. Bereits nach einer Stunde haben wir so die Grundfunktionen von turbovalt4dbt erarbeitet und den ersten Hub erfolgreich ausgerollt.

Satelliten und Link folgten kurzerhand hinterher und hatten am Ende des ersten Tages die ersten Daten und Basisobjekte in unseren Raw-Vault geladen und auch getestet. Hier sehen wir auch direkt einen der großen Vorteile von dbt, dass wir mit dem Generieren der Modelle auch Testfälle anlegen und direkt mittesten können.  

Tag 2

Am zweiten Tag befassten wir uns mit dem Umsetzen eines Multi-Aktiven-Satelliten, was sich als Herausforderung darstellte: Mit der großen Data-Vault-Erfahrung im Team entbrannte hier eine leidenschaftliche Diskussion über die verschiedene Modellierungs- und Beladungsmethoden:

Im Ergebnis wurde festgestellt, dass es bei der cimt unterschiedliche Herangehensweisen an multiaktive Satelliten gibt (Modellierung und Beladung), die in einem eigenen Blogartikel vorgestellt werden und hier unseren Rahmen sprengen würde. Nichtsdestotrotz war am Ende das Verständnis für die Vorgehensweise von datavault4dbt geschafften und ein multiaktiver Satellit modelliert und beladen.

Zum Abschluss ging es dann darum, eine eigene Deployment-Umgebung in dbt-cloud anzulegen und ein Scheduling für das Projekt festzulegen. Unser kleiner Workshop endete dann damit, die Willibald-Daten — soweit umgesetzt — automatisiert in unser kleines DWH zu laden und mit frischem Wissen und neuen Ideen ins Wochenende zu starten. 

Fazit

Ein DWH-Projekt lässt sich mit dbt sehr niederschwellig umsetzen und einfach skalieren, ohne eine tiefe technische Entwicklungserfahrung der Anwender vorauszusetzen.

Ein halber Tag reicht aus, um Kolleginnen und Kollegen mit den Grundfunktionen von dbt-cloud vertraut zu machen. Die von Scalefree bereitgestellten Makros ermöglichen einen einfachen und schnellen Start in die Data-Vault-Automatisierung eines DWH. Werden die Grundlagen für Data- Vault bereits mitgebracht, ist die Anwendung der Makros und des Pythontools selbsterklärend und sehr einfach umzusetzen. Zusätzlich ermöglichen die Makros eine einfache Parallelisierbarkeit und die angezeigte Data-Lineage eine einfache Wartbarkeit.

Als naheliegenden nächsten Schritt sehen wir die Einbindung der Data Vault Pipeline Description (DVPD) der cimt: Als universeller Open-Source-Beschreibungsstandard von Data-Vault-Beladungsprozessen können wir so eine DWH-Beladung unabhängig von dem genutzten Integrationstool definieren. Eine Transformation der DVPD nach turbovault4dbt oder direkt in die datavault4db-Modelle versetzt uns in die Lage, dbt direkt als Werkzeug in einem Projekt mit DVPD-Modellierung zu integrieren, ohne die Datenmodellierung anzupassen.

Neugierig geworden?

Gerne beraten wir sie rund um die Themen dbt, Data-Vault, DVPD und Co. Sprechen sie uns einfach an!

Kontakt

Florian Hahn
Telefon: +49 211 545907-0
E-Mail: florian.hahn@cimt-ag.de

cimtAcademy

Jetzt registrieren und keine Veranstaltungen mehr verpassen.​



    Nach oben scrollen