簡體   English   中英

如何在HBase中區分兩個表

[英]How do I diff two tables in HBase

我試圖比較HBase中的兩個不同的表,以便我可以自動驗證我們用於在HBase中移動數據的一些ETL過程。 比較HBase中兩個表的最佳方法是什么?

我的用例如下:

我想要做的是創建一個將成為我預期輸出的表。 該表將包含我期望通過針對輸入文件執行團隊代碼而創建的所有數據。 然后,我將獲取實際輸出表和預期輸出表之間的差異,以驗證被測組件的完整性。

我不知道開箱即用的東西,但你可以寫一個多表格地圖/減少。

映射器將只從每個表中發出鍵(值為所有hbase鍵值加上表名)reducer可以確保它有每個鍵的2條記錄並比較鍵值。 當只有一個鍵時,它可以看到哪個表不同步

我知道這個問題有點舊,但表格有多大? 如果它們都適合內存,你可以使用HBaseStorage將它們加載到Pig中,然后使用Pig的內置DIFF功能來比較生成的包。

根據文檔,即使對於不適合內存的大型表,這也會起作用,但它會非常慢。

dataset1 = LOAD '/path/to/dataset1' USING PigStorage('<your delimiter>') AS (a:chararray, b:chararray, c:chararray, d:chararray);
dataset2 = LOAD '/path/to/dataset2' USING PigStorage('<your delimiter>') AS (a:chararray, b:chararray, c:chararray, d:chararray);

dataset3 = COGROUP dataset1 BY (a, b,c, d), dataset2 BY (a, b, c, d);

dataset4 = FOREACH dataset3 GENERATE DIFF(dataset1,dataset2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM