卡桑德拉(Cassandra)会将墓碑行作为有效行返回吗?

时间:2018-06-28 08:55:57

标签: cassandra

我的想法是使用TTL = 15 minutes向Cassandra添加行,这样我就可以不存储时间戳等来加载实时数据(now - 15 minutes, now)。我担心的是TTL过期的行将是标记为逻辑删除(实际上并未删除)。也就是说,当我运行select count(*) from realtime_table时,它们会计数吗?

1 个答案:

答案 0 :(得分:3)

否,因此不会返回逻辑删除的行-读取数据时将跳过这些行。

但是,如果您主动使数据过期,则可能需要调整gc_grace_period,否则您将得到太多未被删除的逻辑删除,并且在某些情况下,如果需要进行读取操作,则会在读取期间开始出现警告或错误。跳过墓碑(由cassandra.yaml的{​​{3}}和tombstone_warn_threshold选项控制。

这里是tombstone_failure_threshold,描述了如何删除和清除数据。

但是select count(*) from table在Cassandra中是真正的反模式-您需要考虑使用分区等对数据进行正确的建模。