2016-07-26 27 views
0

Aufgrund der Datenmigration von RDBMS (Oracle/Teradata) nach HDFS (HIVE) ist es erforderlich, den vollständigen Datensatz von RDBMS mit HIVE-Datensatz zu vergleichen, ich verstehe, dass riesige Daten aus RDBMS bringen/HIVE ist ein großer Netzwerk-Overhead, aber das ist die Voraussetzung, ich habe ein grundlegendes Java-Framework in Eclipse entwickelt, das Quell- und Zielabfragen (mit begrenzten Zeilen) durchführt und einen direkten Vergleich durch Abrufen von RDBMS- und HIVE-Resultaten durchführt es sich um eine umfassendere Validierung ich die Schlüssel der beiden Systeme vergleichen haben und beide in dem System nach Dubletten überprüfen, hier sind die Dinge, die ich bis jetzt versucht:Datenvalidierung von zwei heterogenen Systemen in Java

  1. Zwei HashMaps initialisiert, eine für RDBMS und eine für HIVE, nahm dann PK als Schlüssel- und Nicht-Schlüsselattribute in einer Arraylist als Wert. Jetzt mit zwei Hashmaps versucht, die Schlüssel/Werte zwischen ihm zu vergleichen. Aber das Laden von zwei Resultsets und Hashmaps im RAM würde die Performance verschlechtern.

  2. Ich versuchte, REDIS In-Memory-Datenbank für die Speicherung von Schlüssel/Wert-Paare zu verwenden, aber wie ich REDIS über Java-Programm versuchen nicht sicher, wie REDIS hashmaps/hashsets wie wir in JAVA verwenden.

  3. Die Ergebnissätze wurden in zwei verschiedene Textdateien geschrieben, aber das Schreiben der Datei und das Lesen/Verarbeiten ist zeitaufwendig.

Für den Abruf Teil der Daten aus RDBMS ich Dinge getan haben, erwähnt here und here Ich denke, es vielleicht etwas Werkzeug für diesen Job, aber ich versuche, etwas in Open Source zu entwickeln.

Antwort

0

Haben Ihre Daten einen Zeitstempel oder einen ansteigenden Wert, der zum Sortieren der Daten verwendet werden kann, oder kann ein Element aus einer Datenquelle irgendwo in der anderen Quelle dupliziert werden? Wenn es etwas gibt, um die Daten zu ordnen (wie ein Zeitstempel), können Sie jedes beliebige Streaming-System verwenden und "einfach" eine bestimmte Auswahl treffen. Für die Art der Daten, mit denen Sie arbeiten, sind jedoch weitere Informationen erforderlich.