首页 > 解决方案 > HBase:有没有办法在从 hbase 硬删除行时停止创建墓碑标记?

问题描述

有没有办法在从 hbase 硬删除行时停止创建墓碑标记?

我们需要批量删除数百万行。目前我们遵循以下步骤顺序:

  1. 从 hbase 表中硬删除数据(使用 org.apache.hadoop.hbase.client.Delete API)
  2. 在受影响的表上运行主要压缩。
  3. 将新数据加载到表中。

由于我们必须执行重大压缩,因此目前我们被迫在非工作时间执行此活动。

有什么方法可以避免创建墓碑标记?

我们在stackoverflow上找到了与我们的问题相关的以下链接:

有没有办法在 HBase 上进行硬删除(真正的删除)?

谢谢

阿努伊

标签: hbaseclouderacloudera-cdh

解决方案


正如 shay__ 所说,HFile 是不可变的,您不能硬删除记录。但是您不必在删除后立即进行重大压缩。添加具有相同 rowkey/cf/qualifier/value 和比删除时间戳更新的时间戳的行。您可以在空闲时间或需要时主要压缩您的桌子。


推荐阅读