如何在 Cassandra 中获取已排序的日志?

How do I fetch sorted logs in Cassandra?

在我的应用程序中,我们将日志存储在 Cassandra 中。用户可以在给出日志的开始和结束日期后查看日志。我们根据这些日期获取数据并实现了分页,以便第一页的结束日期成为第二页的开始日期。

Table:

CREATE TABLE audit_trail (
    account_id bigint,
    user_id bigint,
    time timestamp,
    category int,
    ip_address text,
    action_description text,
    additional_data map<text,text>,
    source int,
    source_detail varchar,
    PRIMARY KEY ( (account_id), time )
     ) WITH CLUSTERING ORDER BY (time DESC);

问题:

我们得到的日志没有排序,而是散乱的。例如,在查询第 1 天到第 10 天的日志时,我们可能会得到第 10、8、9、2、1 天或任何其他顺序的日志。

目标:

  1. 按排序顺序获取日志,以便第 1 天的日志显示在顶部,然后是第 2 天,依此类推。
  2. 没有数据改组。因为,在碰撞时,table 在 Cassandra 中进行了重组,这可能会再次提供我们已经在第 1 页和第 2 页看到的数据。

数据吞吐量大,一般每小时1000条左右。

WITH CLUSTERING ORDER BY (time DESC);

在 table 末尾添加这个解决了我的问题。