Die Bedeutung von Testing in einer Data Analytics Lösung

In der Data Analytics Welt ist das Testen von erzeugten Informationen von entscheidender Bedeutung. Es ist der Prozess, der sicherstellt, dass die Daten, die in Ihren Berichten und Analysen verwendet werden, zuverlässig, konsistent und korrekt sind. Ohne effektives Testing kann die Genauigkeit und Integrität Ihrer Daten in Frage gestellt werden.

Dabei ist es genau das was eine gute Data Analytics Lösung ausmacht, die Sicherheit das Geschäftsentscheidungen auf validierten Fakten basieren. Verspielen Engineers und BI Abteilungen diese Sicherheit ist das der größtmögliche Schaden der für die weitere Entwicklung einer Organisation eintreten kann. Denn zukünftig gewinnt wer schnell ist - Gute Analytics Lösungen machen hierbei den entscheidenden Vorsprung aus.

Auf folgende Punkte zahlt ein gutes Testing ein:

  • Qualitätssicherung: Testing gewährleistet die Qualität der Daten, die in Ihre Analysen und Berichte einfließen. Es hilft, Fehler und Ungenauigkeiten frühzeitig zu erkennen und zu beheben, bevor sie zu Problemen führen.
  • Vertrauen in die Daten: Wenn Sie Tests durchführen, können Sie sicher sein, dass die Daten, auf die Sie sich verlassen, vertrauenswürdig sind. Dieses Vertrauen ist entscheidend für fundierte Entscheidungen und Berichterstattung.
  • Fehlererkennung: Tests ermöglichen die frühzeitige Erkennung von Fehlern und Inkonsistenzen in Ihren Daten. Dadurch können Sie diese Probleme schnell beheben und verhindern, dass sie sich auf Ihre Analysen auswirken.
  • Compliance: In einigen Branchen und für bestimmte Datenanforderungen sind Compliance und Datensicherheit von entscheidender Bedeutung. Testing hilft sicherzustellen, dass Sie diese Standards erfüllen.

Um so erschreckender ist es zu sehen das Testing-Logiken in 90% der DWHs die ich in meiner beruflichen Laufbahn gesehen habe nicht in ETL / ELT Schritte integriert ist.

Denn bisher gab es meist 2 Hürden für die Integrationen solcher Logiken:

  1. der verantwortliche Consultant ist sehr erfahren und weiß sehr genau was er warum tut
  2. das Projektbudget hat nach Umsetzung aller Anforderungen noch Luft für Data Governance

In den meisten Fällen erweist sich dies jedoch als illusorisch.

Welche Tests unterstützt dbt Out of the Box?

Jetzt aber zurück zu dbt. dbt ersetzt nicht den Senior Consultant, aber es macht ihm das leben leichter und die Integration deutlich Budget verträglicher.

Wir Unterscheiden in dbt Grundsätzlich erst einmal zwischen sogenannten Generic und Singular Tests.

Singular Tests

Singular Tests sind bei weitem nicht so spannend wie die Generic Tests. Diese werden genutzt wenn ein Test einzigartig für einen speziellen Use Case ist. Dazu wird eine SQL Query geschrieben die fehlerhafte Datensätze zurückgibt.

Singular Test SQL Example

Dabei können die bekannten Funktionalitäten aus dbt wie ref genutzt werden. Der Test wird als .sql File im Test-Pfad deines Projektes abgelegt und über das dbt test Kommando ausgeführt.

dbt test

Generic Tests

Die Generic Test unterteilen sich in die folgenden vier Arten von Tests:

  • unique
  • not null
  • accepted_values
  • relationships

Um diese zu einem ELT Prozess in dbt mit aufnehmen zu lassen erstellen Sie einfach ein YAML File mit der entsprechenden Definition.

Generic Tests YAML

Dabei definieren wir über das Modell und die jeweilige Spalte welche Tests worauf ausgeführt werden sollen. Dieses YAML File wird wie folgt aufgelöst und durch dbt als SQL Befehl ausgeführt:

  • unique: Die order_id Spalte im orders Model muss unique sein.
  • not_null: Die order_id Spalte im orders Model darf keine NULL Werte enthalten
  • accepted_values: Die status Spalte im orders Model darf nur die Werte "placed", "shipped", "completed" und "returned" enthalten
  • relationship: Jede cusomter_id im orders Model muss in der Spalte id der customer Tabelle enthalten sein

Die Generic Tests lassen sich sogar eigenständig in Jinja definieren und damit erweitern.

Da dbt Open Source ist, kann ich mir sogar ziemlich sicher sein das einen Test den ich aktuell benötige schon einmal jemand geschrieben hat. Dafür gibt es extra Packages wie z.B. dbt-expectations oder dbt_utils.

Allein diese beiden Pakete zeigen wie komplex gutes Testing sein kann - das ohne dbt von Hand implementiert werden muss, für jede Spalte, jedes Model etc.

Fazit

Zusammenfassend lässt sich sagen, Testing in Data Analytics Lösungen entscheidet über die Qualität und Stabilität für den laufenden Betrieb. Schlagen die Tests fehl werden die nachfolgenden Transformationsschritte auch nicht mehr ausgeführt.

Auf einer Datenplattform die im Delta Format betrieben wird kann direkt die Vorgängerversionen wieder hergestellt werden ohne das jemand manuell Eingreifen muss. Somit sind die Datenmodelle für das Reporting erst einmal weiterhin verfügbar bis das Problem gelöst ist.

In meinem nächsten Artikel - Testing Teil 2 - möchte ich das Thema Testing weiter vertiefen und z.B. auf die zusätzlichen Möglichkeiten zu Data Contracts oder Source Freshness eingehen.

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?"

Du willst mehr zu dbt erfahren?

Melde dich einfach unverbindlich bei uns. Wir besprechen deinen Use Case und wie du in deinem Unternehmen von dbt profitieren kannst.

Jetzt anfragen

Die neuesten Blogbeiträge

Entdecken Sie unsere neuesten Blog-Beiträge

Was ist dbt?

Eine kurze Einführung in das beliebte Data Transformation Framework
Mehr erfahren

dbt Lineage

Automatisch das transparenteste Data Warehouse das Ihr euch erträumen könnt!
Mehr erfahren

Datenqualität in dbt sicherstellen: Tests vor dem Schreiben ausführen

In dbt werden Tests normalerweise erst nach dem Schreiben der Daten ausgeführt. Doch was wäre, wenn wir die Qualität bereits während des Builds sicherstellen? Erfahre, wie du mit einer benutzerdefinierten Materialization Tests vor dem Schreiben durchführst.
Mehr erfahren
Zur Übersicht

Unsere Lösungen machen Ihr Leben einfacher und effizienter

Erfahre mehr über unser Unternehmen und wie wir dir helfen können.