Cassandra如何在每次点击时在一行中添加值

时间:2016-08-16 12:22:31

标签: cassandra cassandra-2.0

在此表中,应用程序将向我们提供以下数据,并且当我们将收到有关状态的更新时,它将是增量的。所以最初的表格如下图所示: -

+---------------+---------------+---------------+---------------+
|      ID       |  Total count  | Failed count  | Success count |
+---------------+---------------+---------------+---------------+
|       1       |      30       |      10       |      20       |
+---------------+---------------+---------------+---------------+

现在让我们假设现在推送了30条消息,其中10条失败,20条成功,如上所示。现在再次运行应用程序并更改值。现在共有20条新记录出来,其中所有记录都是成功的。这应该在同一行更新。

+---------------+---------------+---------------+---------------+
|      ID       |  Total count  | Failed count  | Success count |
+---------------+---------------+---------------+---------------+
|       1       |      50       |      10       |      40       |
+---------------+---------------+---------------+---------------+

使用Counter数据类型在Cassandra DB中是否可行?

1 个答案:

答案 0 :(得分:1)

当然你可以在你的情况下使用计数器表。 让我们假设表格结构如下:

CREATE KEYSPACE Test WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };

CREATE TABLE data (
    id int,
    data string,
    PRIMARY KEY (id)
);

CREATE TABLE counters (
    id int,
    total_count counter,
    failed_count counter,
    success_coutn counter,
    PRIMARY KEY (id)
);

您可以通过运行以下查询来增加计数器:

UPDATE counters
SET total_count = total_count + 1,
success_count = success_count + 1
WHERE id= 1;

希望这可以帮到你。