是否可以更改hbase中列的列族?

时间:2016-02-11 19:53:37

标签: hbase

例如:

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

row1是我的表格的行键,cf1cf2是列系列。我想将cf1:a列从row1移至cf2:a。即改变其列族。是否可以直接更改它而不删除行然后将其放入新系列中?

感谢。

1 个答案:

答案 0 :(得分:0)

Hbase将数据存储在具有列系列名称的hfiles中,因为我认为你不能在没有删除/放置的系列之间移动列。如果有一个shell命令,它会为你做同样的事情。

我想如果你的桌子很大,你应该想想你是怎么做的:) 也许协处理器可以提供帮助,理论上它们可以处理存储在其中的hbase区域服务器中的数据,因此您可以避免网络传输并同时在多个服务器上进行迁移。

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