如何删除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表中所有行的列的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 phpmyadmin 上的列

根据第三个表中的列值删除表中的行

从数据框中删除所有值为 NA 的列

如何使用特定表中的列作为我需要从中删除、插入或更新数据的表名

如何加快删除没有行的文档

如何从 solr 和 hbase 中删除所有数据