在Cassandra中删除后,如何用计数器列重新插入记录?

时间:2015-08-03 06:00:38

标签: cassandra counter

我在Cassandra中创建了一个带有计数器列的表,就像:

create table test_count(
    pk int,
    count counter,
    primary key (pk)
);

然后我更新了一些记录,如:

update test_count set count = count + 1 where pk = 1;

然后我想将计数重置为0,但cql中没有重置命令,所以我删除了记录:

delete from test_count where pk = 1;

然后我重新执行更新CQL,但是当我select * from test_count时,没有pk = 1的记录,那么它是Cassandra的错误吗?当您删除带有计数器列的记录时,它会永远消失吗?如何将计数列重置为0?如何重新插入带有计数器列的记录?

1 个答案:

答案 0 :(得分:3)

  1. 您可以先查询计数器的当前值,然后发出更新以减去该金额。

  2. 您可以删除计数器,然后使用其他行键启动新计数器。您将不再尝试使用原始计数器。使用这种方法,您可能希望按日或按周对计数器进行分区,以便在新的一天开始时,您将从一组新的清零计数器开始。