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

Is it possible to alter the column familes of a column in hbase?

例如:

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

row1 是我的 table 的行键,cf1cf2 是列族。我想将列 cf1:arow1 移动到 cf2:a。即更改其列族。能不能不删行直接改,再放到新的族里?

谢谢。

Hbase 将数据存储在具有列族名称的 hfile 中,因此我认为如果没有 delete/put,您将无法在族之间移动列。如果有一个 shell 命令,它也会为你做同样的事情。

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

如果你的table规模很小(比如不到1000万),就写一段java代码,从Scan结果中逐行读取,delete&put column key到其他家庭。不要忘记在 Scan 中使用列键选择器。我的意思是只从数据库中获取该列到您的程序。