我的问题很简单。是否可以以任何方式检索在期限到期(默认 10 天)tombstone
之前标记的列。GCGraceSeconds
如果是,那么确切的 CQL 查询是什么?
如果我要了解删除过程,则会在 MemTables 上标记墓碑,并且 SSTable 是不可变的等待压缩仍然有已删除的数据等待压缩。那么在压缩发生之前,有什么方法可以从 Memtable 或 SSTable 中读取墓碑数据?
在 CQLSH 命令提示符和 Cassandra 2.0 上使用 CQL 3.0。
你是对的,当一个墓碑被插入时,它通常不会立即删除底层数据(除非你所有的数据都在一个内存表中)。但是,您无法控制它何时发生。如果您没有太多数据并且压缩发生得很快,那么底层数据可能会很快被删除,比 10 天快得多。
没有读取已删除数据的查询,但您可以使用 sstable2json 检查所有 SSTable 以查看它们是否包含已删除数据。
只是为了补充以前的评论。对于经常删除的列族,具有较低的 gc_grace_seconds 值。gc 需要一些时间,但墓碑预计会被清除。