如何删除Hbase表中所有行的列
Posted
技术标签:
【中文标题】如何删除Hbase表中所有行的列【英文标题】:How to delete a column for all rows in Hbase table 【发布时间】:2014-07-10 10:59:31 【问题描述】:我们在一个有 3 列的 hbase 表中有 100k 行(都在同一个列族中)。我需要删除所有行的第三列吗?
【问题讨论】:
【参考方案1】:我为您看到了 2 种可能的方法。重新考虑“第三列”要求并使用批量删除或移动到服务器端处理。我建议在进一步考虑之前重新考虑您的要求。以下是应该有所帮助的关键点:
如果您尝试停留在客户端 API 范围内,您肯定会使用Delete
请求。
如果您需要删除大量特定列条目,您可以使用的唯一方法(据我目前所知)是bulk delete。
在 HBase 中,对于像“删除”这样的突变,没有明确定义“第三列”。您只能指定限定符。您真的需要“第三”还是您知道您的专栏有什么限定词?
如果您确实需要某些特定的“第三方”删除条件,则需要协处理器,特别是端点。 Here is basic explanation.
这里是question which should help you,特别是参考 BulkDeleteProtocol。它允许您根据 Scan
请求进行删除,因此您可能需要 like this 的内容,但需要再次进行特定过滤。
要实现对Scan
的“第三列”过滤,您需要类似ColumnPaginationFilter 的内容。
所以你的任务不是那么微不足道,但我建议在Scan
的基础上使用BulkDeleteProtocol
研究端点的方向,并在ColumnPaginationFilter
上进行过滤。必须警告我没有使用这种组合,尽管它的组件是众所周知的。
【讨论】:
以上是关于如何删除Hbase表中所有行的列的主要内容,如果未能解决你的问题,请参考以下文章