hbase和pig并不存储所有的行

de90aj5v  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(373)

我正在使用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)

有时它甚至会丢失一些要存储的行。
有人能澄清这一点吗?

xcitsw88

xcitsw881#

hbase就是这样设计的!它只是根据family:column name. 您为hbase设置了一个键,然后如果4条记录具有相同的键,那么最终它将只存储一条记录。例如:
身份证、姓名、年龄

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

如果要保存所有记录,就必须使用复合键的概念。

相关问题