Framework zur Überprüfung von SQL-Daten?

Ich erhalte eine Vielzahl von Flatfiles, die in mehreren Phasen eines benutzerdefinierten ETL-Prozesses transformiert und aggregiert werden müssen, bevor sie in eine SQL Server-Datenbank geladen werden.

Nach jeder Phase möchte ich die Daten auf verschiedene Weise überprüfen und schaue mir vorhandene Technologien an, die dabei helfen können.

Nach dem Erhalt der Daten müssen sie auf Dinge wie abgeschnittene Daten, Datumsformatierung und die allgemeine Sicherstellung, dass die Daten für die Transformation bereit sind, validiert werden.

Nachdem die Daten auf diese Weise bereinigt wurden, möchte ich die Daten überprüfen. Dies würde darin bestehen, Werte wie Zeilenanzahl, % Nullen, Durchschnittswerte usw. mit früheren Ladevorgängen oder vordefinierten Werten zu vergleichen. Wenn die Überprüfung fehlschlägt, sollte der Entwickler benachrichtigt werden.

tSQLt, das Database Unit Testing Framework, hat mehrere Zusicherungen, die verwendet werden können, um das zu tun, was ich will. Es ist einfach einzurichten und verfügt über eine anständige Dokumentation. Dies ist das nächste Werkzeug, das ich sehen kann, aber es ist weit von dem entfernt, wofür es entwickelt wurde.

Die Alternative ist, ein eigenes Tool zu erstellen, aber ich möchte wissen - gibt es so etwas bereits?

Antworten (1)

Nach ein wenig Suchen fand ich eine kommerzielle Lösung, die meiner Meinung nach das Problem lösen würde: QuerySurge . Es gibt ein paar ähnliche Tools wie dieses ( ETL-Validator ), obwohl es behauptet, einzigartige Software zu sein.

Es funktioniert durch:

  • Verwenden von Set-Vergleichen zwischen 2 Abfragen, wobei Fehler ausgelöst werden, wenn sie nicht übereinstimmen. Dies können Zeilenzählungen vor/nach Transformationen sein, oder die einfache Überprüfung eines Ergebnisses gibt nichts zurück.

  • Abfragen können für jede JDBC-kompatible Datenquelle unter Verwendung von ANSI SQL und jedem verbindungsspezifischen SQL durchgeführt werden. Die Ergebnisse werden auf einem separaten Server mit einem MySql-Backend gespeichert, und Sie können wählen, ob Sie dies entweder selbst hosten oder deren Server verwenden möchten.

  • Es ermöglicht die Verwendung der Befehlszeile und unterstützt daher kontinuierliche Integrationswerkzeuge.

  • Ein nettes Feature ist die Gruppierung von Tests (Testsuiten), wobei nicht klar ist, wie sich die Ergebnisse einer Gruppe auf einen Gesamttest auswirken würden.

  • Die integrierten Reporting-Tools sehen auch gut aus.

Das ist das meiste, was ich von der Website aufgelesen habe. Ich habe die Testversion nicht heruntergeladen, da die Software selbst außerhalb meiner Preisspanne liegt.

Das Tool ist im Prinzip nicht kompliziert, und wir werden unser eigenes Framework entwickeln, um damit fertig zu werden.