删除 HBase 中的列
Posted
技术标签:
【中文标题】删除 HBase 中的列【英文标题】:Deleting Columns in HBase 【发布时间】:2013-09-12 12:13:49 【问题描述】:在 HBase 中,调用 DeleteColumn() 方法,即本质上对列族进行架构更改或删除列族会导致 HBase 集群停机?
【问题讨论】:
你能解释一下你想要做什么吗? 我想知道更改架构(从数据和架构中删除列)是否需要关闭集群。 【参考方案1】:HBase 的 Delete mutation 上的 deleteColumn 方法从特定行中删除特定列,这不是架构更改,因为 HBase 不保留每行列的架构级知识(并且每行可以有不同数量和类型的列 - 将其视为一个稀疏的矩阵)。此对象上的 deleteFamily 也是如此。
不会因此导致集群停机(并且 HBase 不会真正删除数据,直到该区域的下一次主要压缩)
如果你想从整个表中删除一个列族,你可以通过 HBaseAdmin 使用名称不太恰当的 deleteColumn
方法(或带有 alter 'table_name', NAME => 'family_name', METHOD => 'delete'
的 shell)来实现 - 在这种情况下,需要禁用表首先,虽然 HBase 不会停机,但特定表会
【讨论】:
谢谢阿农。它有帮助。以上是关于删除 HBase 中的列的主要内容,如果未能解决你的问题,请参考以下文章