Beliebte Datenvalidierungstechniken für Analysen und warum Sie sie brauchen
Veröffentlicht: 2022-12-19Anmerkung der Redaktion: Dieser Artikel wurde ursprünglich am 14. Dezember 2020 im Iteratively-Blog veröffentlicht.
Letztendlich muss Ihre Datenanalyse wie jeder andere Code getestet werden. Wenn Sie diesen Code – und die von ihm generierten Daten – nicht validieren, kann dies kostspielig werden (laut Gartner etwa 9,7 Millionen US-Dollar pro Jahr).
Um dieses Schicksal zu vermeiden, können Unternehmen und ihre Ingenieure eine Reihe von proaktiven und reaktiven Datenvalidierungstechniken nutzen. Ersteres empfehlen wir dringend, wie wir weiter unten erklären werden. Ein proaktiver Ansatz zur Datenvalidierung hilft Unternehmen sicherzustellen, dass die ihnen vorliegenden Daten sauber und einsatzbereit sind.
Reaktive vs. proaktive Datenvalidierungstechniken: Lösen Sie Datenprobleme, bevor sie zu einem Problem werden
„Ein Gramm Prävention ist ein Pfund Heilung wert.“ Es ist ein altes Sprichwort, das in fast jeder Situation zutrifft, einschließlich Datenvalidierungstechniken für Analysen. Anders gesagt: Proaktiv ist besser als reaktiv.
Der Zweck jeder Datenvalidierung besteht darin, festzustellen, wo Daten möglicherweise ungenau, inkonsistent, unvollständig oder sogar fehlend sind.
Per Definition findet die reaktive Datenvalidierung im Nachhinein statt und verwendet die Anomalieerkennung, um eventuelle Probleme Ihrer Daten zu identifizieren und die Symptome schlechter Daten zu lindern. Obwohl diese Methoden besser als nichts sind, lösen sie nicht die Kernprobleme, die die schlechten Daten überhaupt erst verursachen.
Stattdessen glauben wir, dass Teams versuchen sollten, proaktive Datenvalidierungstechniken für ihre Analysen zu nutzen, wie z. B. Typsicherheit und Schematisierung, um sicherzustellen, dass die Daten, die sie erhalten, korrekt, vollständig und in der erwarteten Struktur sind (und die zukünftige Teammitglieder nicht haben). mit schlechtem Analytics-Code zu ringen).
Obwohl es naheliegend erscheint, den umfassenderen Validierungsansatz zu wählen, verwenden viele Teams am Ende die reaktive Datenvalidierung. Dies kann mehrere Gründe haben. Häufig ist Analysecode für viele Nicht-Datenteams ein nachträglicher Einfall und wird daher nicht getestet.
Leider ist es auch üblich, dass Daten ohne Validierung verarbeitet werden. Darüber hinaus wird schlechter Analysecode nur dann bemerkt, wenn er wirklich schlecht ist, normalerweise Wochen später, wenn jemand bemerkt, dass ein Bericht völlig falsch ist oder sogar fehlt.
Reaktive Datenvalidierungstechniken können so aussehen, als würden Sie Ihre Daten in Ihrem Warehouse mit einem Tool wie dbt oder Dataform transformieren.
Während all diese Methoden Ihnen helfen können, Ihre Datenprobleme zu lösen (und oft mit objektiv großartigen Tools), helfen sie Ihnen immer noch nicht, die Hauptursache Ihrer schlechten Daten zu heilen (z. B. stückweise Data Governance oder Analysen, die in einem Projekt implementiert werden). auf Projektbasis ohne teamübergreifende Kommunikation) in erster Linie, sodass Sie jedes Mal darauf zurückkommen.
Eine reaktive Datenvalidierung allein reicht nicht aus; Sie müssen proaktive Datenvalidierungstechniken einsetzen, um wirklich effektiv zu sein und die zuvor erwähnten kostspieligen Probleme zu vermeiden. Hier ist der Grund:
- Daten sind ein Mannschaftssport. Es ist nicht nur Sache einer Abteilung oder einer Person, sicherzustellen, dass Ihre Daten sauber sind. Alle müssen zusammenarbeiten, um qualitativ hochwertige Daten sicherzustellen und Probleme zu lösen, bevor sie auftreten.
- Die Datenvalidierung sollte Teil des Software Development Life Cycle (SDLC) sein. Wenn Sie es in Ihr SDLC und parallel zu Ihrer bestehenden testgetriebenen Entwicklung und Ihrem automatisierten QA-Prozess integrieren (anstatt es nachträglich hinzuzufügen), sparen Sie Zeit, indem Sie Datenprobleme vermeiden, anstatt sie später zu beheben.
- Die proaktive Datenvalidierung kann in Ihre bestehenden Tools und CI/CD-Pipelines integriert werden. Dies ist für Ihre Entwicklungsteams einfach, da sie bereits in die Testautomatisierung investiert haben und diese jetzt schnell erweitern können, um auch die Abdeckung für Analysen hinzuzufügen.
- Proaktive Datenvalidierungstests sind eine der besten Möglichkeiten, schnelllebige Teams effizient zu betreiben. Es stellt sicher, dass sie schnell iterieren und Datendrift und andere nachgelagerte Probleme vermeiden können.
- Die proaktive Datenvalidierung gibt Ihnen die Gewissheit, Ihren Code nach Bedarf zu ändern und zu aktualisieren, während die Anzahl der Fehler minimiert wird, die Sie später beseitigen müssen. Dieser proaktive Prozess stellt sicher, dass Sie und Ihr Team nur den Code ändern, der in direktem Zusammenhang mit den Daten steht, die Sie betreffen.
Nachdem wir nun festgestellt haben, warum eine proaktive Datenvalidierung wichtig ist, lautet die nächste Frage: Wie machen Sie das? Welche Tools und Methoden setzen Teams ein, um sicherzustellen, dass ihre Daten gut sind, bevor Probleme auftreten?
Tauchen wir ein.
Methoden der Datenvalidierung
Die Datenvalidierung ist nicht nur ein Schritt, der an einem bestimmten Punkt stattfindet. Dies kann an mehreren Stellen im Datenlebenszyklus geschehen – beim Client, beim Server, in der Pipeline oder im Warehouse selbst.
Es ist in vielerlei Hinsicht dem groß geschriebenen Softwaretesten sehr ähnlich. Es gibt jedoch einen entscheidenden Unterschied. Sie testen die Ausgänge nicht allein; Sie bestätigen auch, dass die Eingaben Ihrer Daten korrekt sind.
Lassen Sie uns einen Blick darauf werfen, wie die Datenvalidierung an jedem Standort aussieht, und untersuchen, welche reaktiv und welche proaktiv sind.
Datenvalidierungstechniken im Client
Sie können Tools wie Amplitude Data verwenden, um Typsicherheit, Komponententests und Linting (statische Codeanalyse) für die clientseitige Datenvalidierung zu nutzen.
Nun, das ist ein guter Ausgangspunkt, aber es ist wichtig zu verstehen, welche Art von Tests Sie mit dieser Art von Tool auf dieser Ebene durchführen können. Hier ist eine Aufschlüsselung:
- Typsicherheit ist, wenn der Compiler die Datentypen und Implementierungsanweisungen an der Quelle validiert, wodurch nachgelagerte Fehler aufgrund von Tippfehlern oder unerwarteten Variablen verhindert werden.
- Beim Komponententest wird eine bestimmte Codeauswahl isoliert getestet. Leider integrieren die meisten Teams keine Analysen in ihre Komponententests, wenn es um die Validierung ihrer Analysen geht.
- Beim A/B-Testen testen Sie Ihren Analyseablauf anhand eines Golden-State-Datensatzes (einer Version Ihrer Analyse, von der Sie wissen, dass sie perfekt war) oder einer Kopie Ihrer Produktionsdaten. Dies hilft Ihnen herauszufinden, ob die Änderungen, die Sie vornehmen, gut sind und eine Verbesserung der bestehenden Situation darstellen.
Datenvalidierungstechniken in der Pipeline
Bei der Datenvalidierung in der Pipeline geht es darum, sicherzustellen, dass die vom Client gesendeten Daten mit dem Datenformat in Ihrem Warehouse übereinstimmen. Wenn sich die beiden nicht auf derselben Seite befinden, erhalten Ihre Datenkonsumenten (Produktmanager, Datenanalysten usw.) auf der anderen Seite keine nützlichen Informationen.
Datenvalidierungsmethoden in der Pipeline können wie folgt aussehen:
- Schemavalidierung , um sicherzustellen, dass Ihre Ereignisverfolgung mit der Definition in Ihrer Schemaregistrierung übereinstimmt.
- Integrations- und Komponententests über relationale, eindeutige und Ersatzschlüssel-Utility-Tests in einem Tool wie dbt, um sicherzustellen, dass das Tracking zwischen Plattformen gut funktioniert.
- Frischetests über ein Tool wie dbt, um festzustellen, wie „frisch“ Ihre Quelldaten sind (auch bekannt als wie aktuell und gesund sie sind).
- Verteilungstests mit einem Tool wie Great Expectations, um Warnungen zu erhalten, wenn Datensätze oder Stichproben nicht mit den erwarteten Eingaben übereinstimmen, und um sicherzustellen, dass Änderungen an Ihrem Tracking vorhandene Datenströme nicht durcheinander bringen.
Datenvalidierungstechniken im Lager
Sie können dbt testing, Dataform testing und Great Expectations verwenden, um sicherzustellen, dass die an Ihr Warehouse gesendeten Daten den Konventionen entsprechen, die Sie erwarten und benötigen. Sie können auf dieser Ebene auch Transformationen durchführen, einschließlich Typüberprüfung und Typsicherheit innerhalb dieser Transformationen, aber wir würden diese Methode nicht als Ihre primäre Validierungstechnik empfehlen, da sie reaktiv ist.
An diesem Punkt umfassen die Validierungsmethoden, die Teams zur Verfügung stehen, die Validierung, dass die Daten bestimmten Konventionen entsprechen, und die anschließende Transformation, um sie zu erfüllen. Teams können auch Beziehungs- und Frischetests mit dbt sowie Wert-/Range-Tests mit Great Expectations verwenden.
Die gesamte Funktionalität dieses Tools läuft auf einige wichtige Datenvalidierungstechniken auf dieser Ebene hinaus:
- Schematisierung , um sicherzustellen, dass CRUD-Daten und -Transformationen festgelegten Konventionen entsprechen.
- Sicherheitstests, um sicherzustellen, dass die Daten Sicherheitsanforderungen wie der DSGVO entsprechen.
- Beziehungstests in Tools wie dbt, um sicherzustellen, dass Felder in einem Modell Feldern in einer bestimmten Tabelle zugeordnet sind (auch bekannt als referenzielle Integrität).
- Frische- und Verteilungstests (wie wir im Pipeline-Abschnitt erwähnt haben).
- Bereichs- und Typprüfung , die bestätigt, dass die vom Client gesendeten Daten innerhalb des erwarteten Bereichs oder Formats des Warehouse liegen.
Ein großartiges Beispiel für viele dieser Tests in Aktion kann gefunden werden, indem man sich in Amundsen, der Discovery- und Metadaten-Engine von Lyft, umsieht. Mit diesem Tool können Datenkonsumenten im Unternehmen Benutzermetadaten durchsuchen, um sowohl die Benutzerfreundlichkeit als auch die Sicherheit zu erhöhen. Die Hauptmethode von Lyft zur Gewährleistung der Datenqualität und Benutzerfreundlichkeit ist eine Art Versionierung über eine Airflow-Aufgabe zur Diagrammbereinigung, die alte, doppelte Daten löscht, wenn neue Daten zu ihrem Warehouse hinzugefügt werden.
Warum ist es jetzt an der Zeit, bessere Datenvalidierungstechniken einzusetzen?
In der Vergangenheit hatten Datenteams Probleme mit der Datenvalidierung, weil ihre Organisationen die Bedeutung von Datenhygiene und Governance nicht erkannten. Das ist nicht mehr die Welt, in der wir leben.
Unternehmen haben erkannt, dass die Datenqualität entscheidend ist. Schlechte Daten nur reaktiv zu bereinigen, reicht nicht aus. Teams von Data Engineers einzustellen, um die Daten durch Transformation zu bereinigen oder endlose SQL-Abfragen zu schreiben, ist eine unnötige und ineffiziente Verwendung von Zeit und Geld.
Früher war es akzeptabel, Daten zu haben, die zu 80 % genau sind (mehr oder weniger, je nach Anwendungsfall), wobei eine Fehlerquote von 20 % verbleibt. Das mag für einfache Analysen in Ordnung sein, aber es reicht nicht aus, um eine Produktempfehlungsmaschine zu betreiben, Anomalien zu erkennen oder wichtige Geschäfts- oder Produktentscheidungen zu treffen.
Unternehmen stellen Ingenieure ein, um Produkte zu entwickeln und großartige Arbeit zu leisten. Wenn sie Zeit damit verbringen müssen, sich mit schlechten Daten zu befassen, machen sie nicht das Beste aus ihrer Zeit. Aber die Datenvalidierung gibt ihnen die Zeit zurück, sich auf das zu konzentrieren, was sie am besten können: Wert für das Unternehmen zu schaffen.
Die gute Nachricht ist, dass qualitativ hochwertige Daten in Reichweite sind. Um dies zu erreichen, müssen Unternehmen allen helfen, ihren Wert zu verstehen, indem sie die Silos zwischen Datenproduzenten und Datenkonsumenten aufbrechen. Dann sollten Unternehmen die Tabellenkalkulationen wegwerfen und bessere Engineering-Praktiken wie Versionierung und Schematisierung auf ihre Analysen anwenden. Schließlich sollten sie sicherstellen, dass Best Practices für Daten im gesamten Unternehmen befolgt werden, und zwar mit einem Plan für Nachverfolgung und Data Governance.
Investieren Sie in die proaktive Analysevalidierung, um Datendividenden zu verdienen
In der heutigen Welt reichen reaktive, implizite Datenvalidierungstools und -methoden einfach nicht mehr aus. Sie kosten Zeit, Geld und vor allem Vertrauen.
Um dieses Schicksal zu vermeiden, setzen Sie auf eine Philosophie der Proaktivität. Identifizieren Sie Probleme, bevor sie zu teuren Problemen werden, indem Sie Ihre Analysedaten von Anfang an und während des gesamten Lebenszyklus der Softwareentwicklung validieren.