Cassandra 使用 TTL 计算项目插入(集群键)

标签 cassandra

据我了解,Cassandra 计数器应该有助于避免 select count(*) 的成本。只要我不将 TTL 放在我想要计数的项目上,效果就很好。不过,使用 TTL 会使项目一旦开始过期就会被过度计数。有什么策略来处理这个问题吗?手动删除旧记录(以及计数器减量)是此用例的唯一方法吗?

最佳答案

如果您想使用计数器来跟踪表中的行数,您可能不希望使用 TTL 以随机方式使行过期。

您可以做的是以某种方式(例如按天)对数据进行分区,并为每一天保留一个计数器。然后设置 TTL,以便给定日期的所有行同时过期(或者您可以使用 DELETE 删除整个分区)。当那一天到期时,您会将那天的计数器设置回零。那么,您的总行数将是所有日计数器的总和。

关于Cassandra 使用 TTL 计算项目插入(集群键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664480/

相关文章:

node.js - 无法从我的 Node.js 应用程序连接到 Cassandra Docker 容器

nosql - Cassandra 的列族中有多少行会影响性能?

java - spark应用jar是否需要提交?

cassandra - cassandra中的主键和索引

nosql - 将数据保存到内存中,一段时间后将它们保存到数据库中

cassandra - 负情况下未记录和已记录的 Cassandra 批处理之间的差异

Cassandra:停用种子节点

python - 使用 Python 驱动程序检查 Cassandra 表中是否存在记录

Cassandra : Multiple tables vs materialized view

Mongodb和Cassandra数据存储机制