我正在使用PIG和HBASE将一些信息存储到DB中。我有一个从DUMP命令中获取的数据集,它将在下一阶段存储在HBASE中。
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 :(得分:0)
这就是HBase的设计方式!它只是根据系列附加数据:列名称。你为HBASE设置了一个KEY,然后如果4个记录带有相同的密钥,最终它只会存储一个记录。 对于Eg:
ID,NAME,AGE
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
如果你要保存所有记录,你将不得不使用概念 复合键。