Blue Planet Studio - stock.adobe
Datentransformation und Datenanalyse mit Data Build Tool
Data Build Tool (dbt) ist der Rising Star unter den Analyse-Tools. Das Produkt hat eine aktive Community und unterstützt über 30.000 Unternehmen, Wissen zu organisieren.
Personalstammdaten in der HR-Software, Erlöse einer bestimmten Filiale in der Warenwirtschaft – das sind erst einmal nur nackte Zahlen in verschiedenen Systemen eines Handelsunternehmens. Datenanalyse muss jetzt zwischen ihnen eine Verbindung herstellen, um zum Beispiel zu erkennen, welche Umsätze welcher Verkaufskraft zuzuordnen sind.
Dazu müssen die Rohdaten aus den einzelnen Quellen (Datenbanken) entnommen (Extract) und in ein Zielsystem (Data Warehouse oder Data Lake) geladen werden (Load). Dort werden sie dann aggregiert und, durch SQL-Abfragen oder spezialisierte Transformations-Tools, in das gewünschte Format gebracht (Transform) – der bekannte ELT-Ansatz.
Moderne Data Warehouses wie Snowflake, BigQuery oder Redshift sind für schnelle Datenverarbeitung optimiert, wodurch Transformationen direkt dort effizient ausgeführt werden können. Deshalb hat sich ELT (Extract, Load, Transform) gegenüber dem klassischen ETL durchgesetzt, wo die Daten direkt nach der Extraktion transformiert und erst dann ins Zielsystem geladen werden.
Kein reines Transformations-Tool (obwohl es so heißt), sondern im Grunde ein Framework ist Data Build Tool (dbt). Das Open-Source-Werkzeugset wurde speziell für die Transformation und das Management von Daten innerhalb von Data Warehouses entwickelt und wird auch als Tool für Analytics Engineering bezeichnet. Damit ist gemeint: Datenanalysten müssen sich nicht mehr mit komplexen Datencodes beschäftigen, sondern können mit einem solchen standardisierten Framework selbstständig Datenpipelines erstellen, die skalierbar, wiederholbar und gut strukturiert sind. Ein Stück weit werden sie damit zu Dateningenieuren.
Merkmale des Data Build Tools
Zu den Funktionen und Merkmalen des Data Build Tools gehören:
1. Transformation auf SQL-Basis
Statt auf externe Engines oder zusätzliche Programmiersprachen zu setzen, nutzt dbt das, was in Data Warehouses ohnehin verfügbar ist: SQL – eine Sprache, die den meisten Datenanalysten vertraut ist. Da die Transformationen direkt in SQL definiert werden, ist der Zugang für SQL-erfahrene Teams einfach und die Lernkurve relativ flach. Quasi ein modulares, getuntes SQL, bei dem man mit Variablen arbeiten und Abhängigkeiten zwischen Tabellen darstellen kann. Der deklarative, das heißt einfach lesbare Codestil erlaubt es, Geschäftslogiken schneller zu erstellen und auch zu skalieren. Das verkürzt Entwicklungszyklen.
2. Modularität und Wiederverwendbarkeit
In dbt werden Datentransformationen in Modelle gegliedert. Diese Modelle sind SQL-Dateien, die sich referenzieren und miteinander verknüpfen lassen. Durch die Modularität lassen sich einzelne Teile der Transformation unabhängig voneinander bearbeiten, testen und wiederverwenden.
3. Abhängigkeitsmanagement
dbt erstellt automatisch eine Abhängigkeitsstruktur zwischen den Modellen, basierend auf ihren Referenzen. So wird gewährleistet, dass die Daten in der richtigen Reihenfolge transformiert werden, was besonders bei komplexen Datenpipelines nützlich ist.
4. Automatisierte Dokumentation
Dokumentationen für alle Modelle und Transformationen können automatisch generiert werden. Dazu gehört auch die Verknüpfung von Abhängigkeiten und die Darstellung der Struktur der Pipeline. dbt kann Diagramme erzeugen, die darstellen, wie verschiedene Modelle miteinander verbunden sind – dies erleichtert es, die Struktur der Datenpipeline nachzuvollziehen und weiterzugeben.
5. Testing und Qualitätssicherung
dbt bietet integrierte Testmöglichkeiten, um Datenqualitätsprüfungen direkt in den Modellen durchzuführen. So lässt sich sicherstellen, dass die transformierten Daten bestimmte Bedingungen erfüllen (zum Beispiel keine Nullwerte, Eindeutigkeit in Primärschlüsseln). Das unterstützt dabei, Datenfehler frühzeitig zu erkennen.
6. Versionierung und Git-Integration
Die Integrationsmöglichkeit von dbt-Projekten in Git-Versionierungssysteme erleichtert die Zusammenarbeit in Teams und Verfolgung von Änderungen an den Transformationen.
Weitere Tools für Datenbanktransformationen
Neben dem Open Source Framework gibt es natürlich noch weitere Tools zur Datenbanktransformation. Verbreitet ist zum Beispiel SQLMesh, das ein datenbankunabhängiges Datenversionierungs- und Transformationsmanagement bietet und durch SQL-ähnliche Syntax und Python erweiterbare Transformationen unterstützt. dbt hingegen fokussiert auf das Transformieren und Modellieren von Daten in SQL und setzt dazu auf eine deklarative Syntax. Nach Ansicht vieler Fachleute reicht SQLMesh derzeit an dbt nicht heran.
„Das Open-Source-Werkzeugset wurde speziell für die Transformation und das Management von Daten innerhalb von Data Warehouses entwickelt und wird auch als Tool für Analytics Engineering bezeichnet.“
Matthias Braier, Solita Germany
Gebräuchlich sind außerdem die Workflow-Systeme Apache Airflow (steuert ETL-Prozesse und orchestriert Datenpipelines) und Prefect (besondere Möglichkeiten punktgenauer Fehlerbehandlung und Überwachung komplexer Datenworkflows). Das Open-Source-Framework Luigi wird besonders in komplexen Datenverarbeitungs-Workflows eingesetzt, Dataform ähnelt als SQL-basiertes Tool dbt und das Datenintegrations- und ETL-Tool Apache Nifi ist auf Echtzeit-Datenströme spezialisiert und findet in IoT-Umgebungen Anwendung.
Noch einmal eine Stufe darüber bewegt sich Agile Data Engine mit weitreichenden Möglichkeiten der Orchestrierung und Dokumentation – eine ganzheitlichere Methode für den gesamten ELT-Prozess und konzipiert eher für den Enterprise-Einsatz.
Fazit
Durch die Kombination von SQL-Basis, Modularität, Abhängigkeitsmanagement, Testing und Dokumentation ist dbt ein mächtiges Framework für Datenbanktransformationen. Es erlaubt Dateningenieuren und -analystinnen, Datenpipelines in einem Data Warehouse effizient zu verwalten und zu transformieren, ohne dass große Entwicklungsteams oder spezielle ETL-Tools erforderlich sind.
Über den Autor:
Matthias Braier ist Data & Analytics Lead bei Solita Germany.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.