2017-02-14 64 views
0

我正在使用PIG和HBASE將一些信息存儲到數據庫中。我有一個從DUMP命令中獲取的數據集,它將在下一階段存儲在HBASE中。Hbase和PIG不存儲所有行

DUMP somedata; 

產生其中具有如下面的重複行數據的塊。

(rowkey, cf:1, cf:2 ....) 
(12345::456::idea, 4567, deleted, 2.3, next, super) 
(12345::456::idea, 4567, deleted, 2.3, next, super) 
(12345::456::idea, 4567, deleted, 2.3, next, super) 
(12345::456::idea, 4567, deleted, 2.3, next, super) 
(12345::456::idea, 4568, deleted, 2.3, next, super) 
(12345::456::idea, 4568, deleted, 2.3, next, super) 
(12345::456::idea, 4568, deleted, 2.3, next, super) 
(12345::456::idea, 4569, deleted, 2.3, next, super) 
(12345::456::idea, 4569, deleted, 2.3, next, super) 
(12345::456::idea, 4569, deleted, 2.3, next, super) 

當使用STORE命令將某些數據與HBaseStorage一起存儲時,所有重複的行都被刪除並存儲不同的行。我不確定這是否是預期的行爲。

出上述的只是它存儲

(12345::456::idea, 4567, deleted, 2.3, next, super) 
(12345::456::idea, 4568, deleted, 2.3, next, super) 
(12345::456::idea, 4569, deleted, 2.3, next, super) 

而且有些時候它確實錯過了一些行,甚至儲存。

任何人都可以澄清這一點嗎?

+0

可以添加plz代碼和hbase表定義嗎? – 54l3d

回答

0

這就是HBase的設計!它只是按照系列添加數據:列名。您爲HBASE設置了一個KEY,然後如果4個記錄帶有相同的密鑰,最終它只會存儲一條記錄。 對於EG:

ID,姓名,年齡

1,SAM,20 
2,RAJ,25 
1,ANN, 27 

如果ID設置爲KEY,然後HBASE只會有

1 ANN 27, 
2,RAJ,25 

下一頁如果插入一些數據:

id,hometown 
1,Bangalore 
5 Jaipur 

HABSE將有:

1 ANN 27,Bangalore 
2,RAJ,25 
5 Jaipur 

IFF要保存的所有記錄,你將不得不使用 組合鍵的概念。