例如:
row1,cf1:a,cf2:b
row2,cf1:x,cf1:y
row3,cf2:a,cf2:c
row1
是我的表格的行键,cf1
和cf2
是列系列。我想将cf1:a
列从row1
移至cf2:a
。即改变其列族。是否可以直接更改它而不删除行然后将其放入新系列中?
感谢。
答案 0 :(得分:0)
Hbase将数据存储在具有列系列名称的hfiles中,因为我认为你不能在没有删除/放置的系列之间移动列。如果有一个shell命令,它会为你做同样的事情。
我想如果你的桌子很大,你应该想想你是怎么做的:) 也许协处理器可以提供帮助,理论上它们可以处理存储在其中的hbase区域服务器中的数据,因此您可以避免网络传输并同时在多个服务器上进行迁移。
如果您的表格很小(例如少于1000万),只需编写一个java代码,从扫描结果中逐个读取行,并将列键删除并放入其他族。不要忘记在扫描中使用列键选择器。我的意思是只从数据库中获取该列到您的程序。