我们在一个包含 3 列的 hbase 表中有 10 万行(都在同一个列族中)。我需要删除所有行的第三列吗?
最佳答案
我看到了 2 种可能的方法。重新考虑“第三列”要求并使用批量删除或移至服务器端处理。我建议在继续之前重新考虑您的请求。以下是应该有所帮助的要点:
- 如果您试图留在客户端 API 范围内,您肯定会使用
Delete
请求。 - 如果您需要删除大量的特定列条目,您可以使用的唯一方法(据我目前所知)是bulk delete .
- 在 HBase 中,对于像“删除”这样的突变,没有明确定义“第三列”。您可以仅指定限定词。您真的需要“第三”吗?或者您知道您的专栏有什么限定词吗?
- 如果您确实需要某些特定的“第三方”删除条件,则需要协处理器,特别是端点。 Here is basic explanation .
- 这是question which should help you ,尤其是对 BulkDeleteProtocol 的引用。它允许您根据
Scan
请求进行删除,因此您可能需要一些东西 like this但同样有特定的过滤。 - 要在
Scan
上实现“第三列”过滤器,您需要像 ColumnPaginationFilter 这样的东西.
所以你的任务不是那么微不足道,但我建议使用 BulkDeleteProtocol
查看端点的方向基于 Scan
过滤 ColumnPaginationFilter
。必须警告我没有使用过这种组合,尽管它的组件是众所周知的。
关于java - 如何删除Hbase表中所有行的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24674802/