HBase何时实际删除一行?

HBase何时实际删除一行?,hbase,Hbase,向hbase发出Delete命令时,我知道它不会立即删除数据。但是什么时候删除数据,我是说,物理上 当您向HBase写入内容时,它会存储在memstore(RAM)中,然后写入磁盘。这些磁盘写入通常是不可变的,除非压缩 在hbase中的主要压缩过程中会处理删除操作—这些操作大约每24小时运行一次,可以通过API或shell触发。主要压缩处理删除标记-次要压缩不删除标记 当您发出普通删除时,会产生一个删除(墓碑)标记-这些删除标记及其表示的数据在压缩过程中被删除(不存在于合并文件压缩后) 此外,如

向hbase发出
Delete
命令时,我知道它不会立即删除数据。但是什么时候删除数据,我是说,物理上

当您向HBase写入内容时,它会存储在memstore(RAM)中,然后写入磁盘。这些磁盘写入通常是不可变的,除非压缩

在hbase中的主要压缩过程中会处理删除操作—这些操作大约每24小时运行一次,可以通过API或shell触发。主要压缩处理删除标记-次要压缩不删除标记

当您发出普通删除时,会产生一个删除(墓碑)标记-这些删除标记及其表示的数据在压缩过程中被删除(不存在于合并文件压缩后)

此外,如果删除数据并放置更多数据,但时间戳早于逻辑删除时间戳(&符合早期删除的条件),则进一步的GET可能会被delete/TOMBOLSTONE标记屏蔽(仅在运行主要压缩后修复)&因此,在这种情况下,只有在主要压缩之后,您才会收到插入的值


希望对您有所帮助

注意:根据
hbase.hregion.majorcompaction
中的文档,默认情况下,主要压缩每7天运行一次。