2016-07-26 50 views
0

由於從RDBMS(oracle/teradata)到HDFS(HIVE)的數據遷移,要求比較從RDBMS到HIVE數據集的完整數據集,據我所知,從RDBMS/HIVE是一個很大的網絡開銷,但這是要求,我已經在eclipse中開發了一個基本的java框架,它將採用源和目標查詢(有限的行),然後通過獲取RDBMS和HIVE resulsets進行並排比較,它更全面的驗證我要比較兩個系統的密鑰併爲您在這兩個系統中重複,這裏是我試過至今的事情:Java中兩個異構系統的數據驗證

  1. 初始化了兩個用於RDBMS的HashMap和一個用於HIVE的HashMap,然後將PK作爲數組中的關鍵和非關鍵屬性值。現在有兩個hashmaps試圖比較它之間的鍵/值。但是將兩個結果集和hashmaps加載到RAM中會降低性能。

  2. 試圖使用REDIS內存數據庫來存儲密鑰/值對,但是因爲我試圖通過Java程序訪問REDIS不確定如何使用REDIS hashmaps/hashsets我們在JAVA中使用的方式。

  3. 將結果集寫入兩個不同的文本文件,但寫入文件和讀取/處理過程非常耗時。

對於來自RDBMS我做的事情的數據讀取部分提到herehere 我想有可能這個工作的一些工具,但我試圖開發開源的東西。

回答

0

您的數據是否有時間戳或任何可用於排序數據的增加值,或者一個數據源中是否有一個重複元素位於其他源中的任何位置?如果有什麼要訂購數據(如時間戳),您可以使用任何類型的流媒體系統,「簡單」可以執行不同的選擇。但是,有關您正在使用的數據類型需要更多信息。