2017-02-14 29 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要保存的所有记录,你将不得不使用 组合键的概念。