Traditionelle Daten-Transformationstools sind in der Regel monolithische All-in-One-Plattformen, die an Flexibilität und Anpassungsfähigkeit mangeln. In den letzten Jahren hat sich der Trend hin zu spezialisierteren Diensten wie Transformation, Orchestrierung, Testing und Benutzeroberflächen entwickelt. Die Integration separater Tools kann dazu beitragen, bessere Daten an Kunden zu liefern und das Gesamterlebnis zu verbessern. Ein moderner Ansatz bedeutet, dass der Entwicklungsprozess iterativ und inkrementell sein kann, mit vollständiger Automatisierung und kontinuierlicher Bereitstellung. In diesem Artikel verwenden wir die folgenden Tools:
- dbt
- re_data
- Airflow
als Beispiel für den Aufbau einer modernen Daten-Transformationspipeline.
dbt
dbt ist ein Transformations-Workflow-Framework für Datenmodelle. Modelle verwenden SQL-Anweisungen, die Transformationen beschreiben und auf der Ziel-Datenplattform ausgeführt werden: BigQuery, Databricks, Postgres, Snowflake und viele mehr. Modelle können aus anderen Modellen kombiniert werden, was zu einem wiederverwendbaren Framework mit einsatzbereiten Bausteinen führt. Diese modulare Natur ermöglicht es, die Logik in einfachere, kleinere Teile zu zerlegen, die in verschiedenen Transformationen wiederverwendet werden können. Im Vergleich zu traditionellen Tools müssen wir komplexe Logik nicht in mehreren Pipelines wiederholen – oft von Pipeline zu Pipeline kopiert.

[Beispielmodell: client.sql] Der dbt-Code wird an einem Ort (im Git-Repository) gespeichert, um eine einzige Quelle der Wahrheit bereitzustellen. Wir können Datenmodelle in Pakete gruppieren, versionieren und detaillierte Dokumentationen hinzufügen. Dokumentationen können in Klartext oder Markdown geschrieben werden, um Projekte, Quellen, Modellspalten und mehr zu beschreiben. Die gerenderte Dokumentation ist eine einfache Website mit Abschnitten und Diagrammen für bessere Projektübersicht und -verständnis.

[Beispieldokumentation, generiert von dbt] Jedes Modell kann Tests während der Entwicklung und Laufzeit ausführen. Tests sind SQL-Dateien, die beispielsweise überprüfen können, ob Werte nicht null sind, ob Werte eindeutig sind oder ob Referenzen (z. B. ID-Werte) mit denselben ID-Werten in anderen Modellen übereinstimmen. Tests in dbt funktionieren wie Unit-Tests in der Programmierung – sie bestätigen, dass der Code korrekt funktioniert, und ermöglichen kontrollierte Änderungen an den Modellen.

[Testbeispiel: assert_client_total_amount.sql] dbt ist in zwei Versionen verfügbar:
- dbt core – Open-Source-Tool für die Kommandozeile mit allen Transformationsfunktionen.
- dbt cloud – im Wesentlichen dbt core, jedoch mit cloudbasierter Benutzeroberfläche. Die Benutzeroberfläche bietet zusätzliche Funktionen wie Metadaten, automatische Dokumentationserstellung und Integration mit anderen Tools.
Zusammenfassend ermöglicht die Arbeit mit dbt den Nutzern, sich auf die Geschäftslogik zu konzentrieren, während sie Datenmodelle erstellen, und das Framework übernimmt die Ausführungsreihenfolge und die Objekterstellung. Datenmodelle schaffen eine vertrauenswürdige Quelle für Berichte, ML-Modellierung oder andere Pipelines. Der modulare Ansatz mit wiederverwendbaren Datenmodellen erleichtert den Einstieg in die Datenanalyse – wir müssen die Pipeline nicht „von Grund auf“ erstellen.
re_data
re_data ist ein Open-Source-Framework, das dbt um datenspezifische Tests und Metriken erweitert. Diese Lösung ermöglicht es, Datenänderungen zu verfolgen, Ergebnisse zu überwachen, Datenherkunft zu inspizieren und Projektdetails zu analysieren. Alle in den Daten erkannten Anomalien können als Benachrichtigungen über Slack oder E-Mail gesendet werden. Zeitbasierte Metriken werden für überwachte Tabellen gesammelt und können durch benutzerdefinierte Berechnungen erweitert werden. Bereits integrierte Metriken umfassen Standardberechnungen wie Zeilenanzahl, Minimalwert, Maximalwert, Nullanzahl usw. Metriken können später getestet werden, um Probleme zu erkennen – re_data liefert eine Bibliothek mit einsatzbereiten Prüfungen. Alle Testergebnisse werden gespeichert und können später analysiert werden, um Datenprobleme zu finden.

[Beispiel dbt-Modell mit re_data: client.sql] Version 2:

[Konfiguration eines dbt-Modells mit re_data-Tests: schema.yml] Mit re_data können wir auch eine Benutzeroberfläche generieren, die detaillierte Informationen enthält:
- Benachrichtigungen bei Problemen mit den Daten oder Schemaänderungen
- Datenherkunft mit zusätzlichen Informationen zu Anomalien
- Testhistorie
- Tabellen mit Details zu Metriken und zugehörigen Tests

[Beispiel-Benutzeroberfläche, Bild aus der re_data-Dokumentation: https://docs.getre.io/latest/docs/re_data/getting_started/toy_shop/generate_ui] Eine umfassendere Unternehmenslösung ist re_cloud. Es handelt sich um eine cloudbasierte Lösung, die alle re_data-Ausgaben an einem Ort integrieren kann. re_cloud kann mit mehreren Lösungen wie BigQuery, Redshift, Snowflake, dbt, GreatExpectations und mehr integriert werden. Es kann ein zentraler Überwachungspunkt sein, an dem Benutzer aus verschiedenen Teams Berichte und Warnungen überprüfen können.
Airflow
Airflow ist ein Orchestrierungstool, das in Python geschrieben wurde. Da es hochgradig anpassbar ist (benutzerdefinierter Python-Code kann als Plugins hinzugefügt werden), können wir jede benötigte Funktionalität hinzufügen. Mit Airflow können wir Verarbeitungs-Workflows erstellen, die die erforderlichen Transformationsschritte zu einem gewünschten Zeitplan ausführen.

[Beispiel eines Airflow DAG]
Zusammenfassung
Mit einer Kombination aus dbt, re_data und Airflow gewinnen wir:
- Die Arbeit ist zwischen spezialisierten Teams aufgeteilt, mit mehr Klarheit darüber, wer wofür verantwortlich ist.
- Daten sind zuverlässig, da Geschäfts- und Datenqualitätsprüfungen mit kontinuierlicher Überwachung und Warnungen implementiert sind.
- Tools können bei Bedarf mit weiteren „Bausteinen“ erweitert werden. Zum Beispiel können wir GreatExpectations hinzufügen, wenn wir Eingabedaten testen möchten.
- Der Entwicklungsprozess ist iterativ und inkrementell, mit ordnungsgemäßer Versionskontrolle.
Eine Beispielarchitektur ist im Bild unten dargestellt:

Stateful-vs-stateless architecture which solution is better for your application
Data exploration-definition and techniques
Everything you need to know about data quality management-best-practices-and-tools



