Ich beginne ein Projekt mit Apache Hadoop / Hive, das eine Sammlung von Hive-Abfrageskripten beinhalten wird, um Datenfeeds für verschiedene Downstream-Anwendungen zu erzeugen. Diese Skripte scheinen ideale Kandidaten für einige Komponententests zu sein - sie stellen die Erfüllung eines API-Vertrags zwischen meinem Datenspeicher und Client-Anwendungen dar, und es ist daher trivial, die erwarteten Ergebnisse für eine bestimmte Menge von Startdaten zu schreiben. Mein Problem ist, wie man diese Tests durchführt.
Wenn ich mit SQL-Abfragen arbeiten würde, könnte ich etwas wie SQLlite oder Derby verwenden, um schnell Testdatenbanken zu erstellen, Testdaten zu laden und eine Sammlung von Abfragetests durchzuführen. Leider sind mir solche Tools für Hive nicht bekannt. Im Moment ist mein bester Gedanke, dass das Test-Framework eine hadoop-lokale Instanz aufruft und Hive dagegen anleitet, aber ich habe das noch nie zuvor gemacht und ich bin mir nicht sicher, ob es funktionieren wird oder der richtige Pfad ist / p>
Ich bin auch nicht an einer pedantischen Diskussion interessiert, ob das, was ich tue, Komponententests oder Integrationstests ist - ich muss nur in der Lage sein, zu beweisen, dass mein Code funktioniert.
Hive verfügt über einen speziellen Standalone-Modus, speziell für Testzwecke. In diesem Fall kann es ohne Hadoop laufen. Ich denke, es ist genau das, was du brauchst. Es gibt einen Link zur Dokumentation:
Ich arbeite als Teil eines Teams, um eine große Daten- und Analyseplattform zu unterstützen, und wir haben auch diese Art von Problem.
Wir haben eine Weile gesucht und zwei ziemlich vielversprechende Tools gefunden: Ссылка Ссылка
HiveRunner ist ein Framework, das auf JUnit aufgebaut ist, um Hive-Abfragen zu testen. Es startet einen eigenständigen HiveServer mit HSQL im Speicher als Metastore. Damit können Sie Tabellen, Views, Mock Samples usw. stubben.
Es gibt zwar einige Einschränkungen für Hive-Versionen, aber ich empfehle es definitiv
Hoffe es hilft dir =)
Ich weiß, das ist ein alter Faden, aber nur für den Fall, dass jemand darauf stößt. Ich habe den ganzen Minicluster & amp; Bienenstock-Tests, und festgestellt, dass die Dinge mit MR2 und YARN geändert haben, aber auf eine gute Art und Weise. Ich habe einen Artikel und ein Github Repo zusammengestellt, um etwas Hilfe zu geben:
Ich hoffe, es hilft!
Tags und Links unit-testing testing hive