有没有办法在 HBase 上进行硬删除(真正的删除)?
Is there a way to do hard delete (real delete) on HBase?
我知道 hbase 从不对记录进行真正的删除,它只是设置一个墓碑标记。
但是如果数据量越来越大,哪天你想通过硬删除(real delete)一些选中的行来减小大小呢?
删除标记和删除的单元格在主要压缩过程中被删除。 Minor compaction 只会将小的 HFiles 合并成更大的 HFiles。您可以使用以下命令手动触发主要压缩:
major_compact "table name"
压缩(次要和主要)是在线操作。无需维护 window 即可执行压缩。
请记住,主要压缩可能需要很长时间,因为它会重新组织所有 HFile。为避免对高负载系统产生负面性能影响,您可以考虑在高峰时段之外安排压缩。
主要压缩也会自动发生(默认情况下每 7 天发生一次)。通过 hbase.hregion.majorcompaction
参数控制计划的主要压缩的频率。
小压缩也可以升级为大压缩。
更多细节,我推荐优秀的HBase Reference Guide。
我知道 hbase 从不对记录进行真正的删除,它只是设置一个墓碑标记。 但是如果数据量越来越大,哪天你想通过硬删除(real delete)一些选中的行来减小大小呢?
删除标记和删除的单元格在主要压缩过程中被删除。 Minor compaction 只会将小的 HFiles 合并成更大的 HFiles。您可以使用以下命令手动触发主要压缩:
major_compact "table name"
压缩(次要和主要)是在线操作。无需维护 window 即可执行压缩。
请记住,主要压缩可能需要很长时间,因为它会重新组织所有 HFile。为避免对高负载系统产生负面性能影响,您可以考虑在高峰时段之外安排压缩。
主要压缩也会自动发生(默认情况下每 7 天发生一次)。通过 hbase.hregion.majorcompaction
参数控制计划的主要压缩的频率。
小压缩也可以升级为大压缩。
更多细节,我推荐优秀的HBase Reference Guide。