如何在Cassandra中删除Counter列?

时间:2015-01-31 07:00:02

标签: cassandra ttl

我知道Cassandra拒绝计数器类型的TTL。那么,删除旧计数器的最佳做法是什么?例如老观点。

我应该创建用于删除旧计数器的cron作业吗?

2 个答案:

答案 0 :(得分:4)

从计数器表中删除单个群集行或分区可能不是一个好习惯,因为删除的密钥不能再次使用。如果应用程序尝试增加已删除行中的计数器,则可能会导致错误,因为增量不会发生。如果您在创建新计数器时使用唯一键,那么也许您可以使用它。

因此,更好的方法可能是截断或删除整个表,以便之后可以重新使用密钥。为此,您需要将计数器分成多个表,例如每月一个表,以便在不再相关时可以截断或删除整个表。您可以定期运行一个cron作业,并从x个月前删除计数器表。

答案 1 :(得分:0)

不要担心自己处理这个案子cassandra会为你做这件事,你可以删除它并继续前进。

在这种情况下的一般准则: 确保定期运行压缩并在每次 “gc_grace_seconds” 时运行一次修复,以避免增加磁盘使用量和分布式删除。