In der Welt der Datenanalyse und -verarbeitung spielen Tools und Frameworks eine entscheidende Rolle. Eines dieser Tools, das in den letzten Jahren stark an Bedeutung gewonnen hat, ist dbt, das data build tool. In diesem Artikel werden wir insbesondere auf das integrierte Testing von dbt genauer eingehen. Möchtest du mehr über dbt erfahren, lies gerne auch unseren Artikel "Was ist dbt?"
Warum sollte mein ELT Prozess die Quelldaten zu beginn überprüfen?
Wer kennt das nicht? Der ELT Prozess läuft immer zuverlässig, es gab noch nie Probleme und plötzlich melden sich die Endanwender das die Daten nicht aktuell sind. Die Prozesse sind aber alle erfolgreich durchgelaufen?
Dann hat meist jemand am Quellsystem geschraubt. Auf jeden Fall erfolgte keine Bereitstellung der neuesten Daten.
Besonders interessant wird es dann wenn eure Fakten erfolgreich geladen wurden, die aktualisierten Dimensionen aber fehlen, dann lässt sich das Model nicht mehr auflösen und euer BI Tool streikt. Oder aber Ihr bemerkt gar nicht das Quelldaten nicht korrekt geladen wurden. Bei Quellsystemen die selbst nicht historisieren bedeutet das unterm Strich, irreparabler Datenverlust.
Was ist dbt Freshness
Die Freshness Tests von dbt helfen dir dabei keine unnötigen Transformationen vorzunehmen, fehlende Daten zu erkennen und dir in Kombination mit Metadaten ein komplettes Bild über deine Quellen zu bieten. Außerdem hilft es dir beim Debugging-Prozess wenn eines der nachgelagerten Modelle ausfällt. Denn es ist sofort erkennbar wo das Problem aufgetreten ist - auf Quell- oder Modellebene - du musst also nicht beides prüfen.
Aber wie funktioniert dbt Freshness nun? In den für dbt typischen YAML File zu deinem Modell kannst du die akzeptable Zeitspanne zwischen dem neuesten Datensatz und jetzt für deine Transformation definieren.
Du kannst hierbei 2 Stufen definieren, eine erste Stufe setzt nur eine Warnung ab die dich darüber informieren soll das etwas nicht stimmt. Dabei wird der anschließende Transformationsprozess trotzdem durchgeführt.
Die zweite Stufe entspricht dann dem kritischen Wert der nicht überschritten sein darf - also ansonsten eine Fehlermeldung ausgibt. Entsprechend wird der anschließende Transformationsprozess nicht ausgeführt. Achte darauf das die Zeitspanne zwischen der Warnung und dem Fehler groß genug ist (sofern das Modell es zulässt), dass du ausreichend Zeit für die Fehleranalyse hast bevor die Ausführung in Gänze fehl schlägt.

Die Perioden können dabei in Minuten, Stunden oder Tagen angegeben werden. So können auch echtzeitnahe Use Cases hervorragend überprüft werden und es werden keine unnötigen Ressourcen verschwendet.
Das loaded_at_field ist dabei der Referenzpunkt, der neueste Eintrag entscheidet über den erfolgreichen Test. Aber Achtung, der vergebene Zeitstempel aus der Quelle und der der Datenplattform müssen übereinstimmen um eine korrekte Interpretation der Tests zu gewährleisten.
In welchen Szenarien ist dbt Freshness besonders hilfreich?
Komplexe ELT Prozesse
Jede Datenplattform wächst mit der Zeit - und damit steigt die Komplexität. Es wird schwieriger alle Prozesse, Quellen, Transformationen im Blick zu behalten. DBT nimmt einem hier sehr viele Aufgaben ab und sorgt so für einen stabileren Prozess. Hat die Plattform erst einmal eine gewisse Größe erreicht ist es schwierig all diese Logiken nach zu ziehen.
Eigene Historisierung
Hast du die Anforderung für dein Quellsystem die Historisierung in deiner Analytics Lösung abzubilden weil es dort an einer solchen Logik mangelt. Du musst sofort erkennen ob deine Prozesse hierzu erfolgreich ausgeführt wurden um Datenverluste zu vermeiden.
Data Mesh Architekturen - Data Contracts
Das Thema Data Mesh dringt inzwischen immer weiter in die Analytics Welt. Um Data Freshness mit dbt richtig nutzen zu können muss bereits das Projekt richtig angelegt werden (Freshness Tests stehen nur für Sources zur Verfügung).
Um deine Datenprodukte erfolgreich bereit zu stellen bist du auf die verschiedenen Input Ports und den zugrunde liegenden Data Contract angewiesen. Der Freshness Test ist neben dem Schema Test entscheidend für dein Datenprodukt und die Interoperabilität der Plattform. Fehler müssen sofort erkannt werden um eine Beeinträchtigung des Mesh zu vermeiden.
Daneben gibt es aber noch viele andere Szenarien die diesen Beitrag sprengen würden.
Fazit
dbt Freshness ist ein weiterer Baustein in deiner Analytics Plattform der dir das leben leichter machen soll. Du sicherst deine Transformationsprozesse, beugst Verschwendung vor und erkennst wenn Quellen nicht so funktionieren wie sie sollen.
In meinem nächsten Artikel gehe ich auf das Thema DBT Lineage ein. Für mich einer der Hauptgründe mit DBT zu arbeiten.