2016-02-11 60 views
1

例如:是否有可能改变hbase中列的列家族?

row1,cf1:a,cf2:b 
row2,cf1:x,cf1:y 
row3,cf2:a,cf2:c 

row1是我的桌子和cf1cf2的行键的列科。我想将cf1:a列从row1移至cf2:a。即改变其列家族。是否可以直接更改它,而不删除该行,然后将其放入新家庭?

谢谢。

回答

0

Hbase将数据存储在带有列名的hfiles中,因为如果没有删除/放入,您无法在列之间移动列,我想。如果有一个shell命令,它会为你做同样的事情。

我觉得你应该想想你怎么做,如果你的表是巨大的:) 也许协处理器可以帮助,理论上他们处理它存储在HBase的区域服务器中的数据,这样可以尽量避免网络传输,并进行迁移同时在多个服务器上。

如果您的表的大小很小(如少于1000万),只需编写一个java代码,从扫描结果中逐一读取行,并删除&将列键放到其他族中。不要忘记在扫描中使用列键选择器。我的意思是只有从数据库到你的程序的列。

相关问题