我正在使用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命令用hbastorage存储某些数据时,将消除所有重复行并存储不同的行。我不确定这是否是预期的行为。
以上只有它存储
(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)
有时它甚至会丢失一些要存储的行。
有人能澄清这一点吗?
1条答案
按热度按时间xcitsw881#
hbase就是这样设计的!它只是根据family:column name. 您为hbase设置了一个键,然后如果4条记录具有相同的键,那么最终它将只存储一条记录。例如:
身份证、姓名、年龄
如果id设置为key,那么hbase将只有
接下来,如果插入更多数据:
habse将拥有:
如果要保存所有记录,就必须使用复合键的概念。