在我的应用程序中,我们将日志存储在cassandra中。用户可以在给出日志的开始和结束日期后查看日志。我们在这些日期的基础上获取数据,并实现了分页,使得第一页的结束日期成为第二页的开始日期。
表格:
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天的日志,或者其他任何顺序的日志。
目标:
按排序顺序获取日志,以便第一天的日志显示在顶部,然后显示第二天的日志,依此类推。
没有数据洗牌。因为,在发生冲突时,表在cassandra中被重新构造,这可能会给出我们在第1页和第2页中已经看到的数据。
数据吞吐量很大,通常在每小时1000个日志左右。
1条答案
按热度按时间zphenhs41#
按时间顺序聚类;
在表的末尾加上这个,我就解决了这个问题。