我的想法是使用TTL = 15 minutes
向Cassandra添加行,这样我就可以不存储时间戳等来加载实时数据(now - 15 minutes, now)
。我担心的是TTL过期的行将是标记为逻辑删除(实际上并未删除)。也就是说,当我运行select count(*) from realtime_table
时,它们会计数吗?
答案 0 :(得分:3)
否,因此不会返回逻辑删除的行-读取数据时将跳过这些行。
但是,如果您主动使数据过期,则可能需要调整gc_grace_period
,否则您将得到太多未被删除的逻辑删除,并且在某些情况下,如果需要进行读取操作,则会在读取期间开始出现警告或错误。跳过墓碑(由cassandra.yaml
的{{3}}和tombstone_warn_threshold选项控制。
这里是tombstone_failure_threshold,描述了如何删除和清除数据。
但是select count(*) from table
在Cassandra中是真正的反模式-您需要考虑使用分区等对数据进行正确的建模。