向hbase发出Delete
时,我发现它不会立即删除数据。但是,什么时候删除数据,我的意思是,身体?
答案 0 :(得分:14)
当您向HBase写入内容时,它会存储在memstore(RAM)中,然后在此之后写入磁盘。这些磁盘写入通常是不可变的禁止压缩。
在hbase的主要压缩过程中会删除删除操作 - 这些操作大约每24小时运行一次。可以通过API或shell触发。主要压缩过程删除标记 - 次要压缩不会。
当您发出正常删除时,会导致删除(墓碑)标记 - 这些删除标记和&它们所代表的数据在压缩过程中被移除(压缩后的合并文件中不存在)。
此外,如果您删除数据并放置更多数据但时间戳早于墓碑时间戳(&符合之前删除的条件),则删除/逻辑删除标记可能会掩盖其他内容(仅限于在主要压实运行后修复)&因此,在这种情况下,在重大压实之后,您将不会收到插入值。
希望有所帮助