Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 如何在Cassandra中获取已排序的日志?_Sorting_Logging_Cassandra_Database Performance_Database Partitioning - Fatal编程技术网

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

Sorting 如何在Cassandra中获取已排序的日志?,sorting,logging,cassandra,database-performance,database-partitioning,Sorting,Logging,Cassandra,Database Performance,Database Partitioning,在我的应用程序中,我们将日志存储在Cassandra中。用户可以在给出日志的开始和结束日期后查看日志。我们根据这些日期获取数据,并已实现分页,以便第一页的结束日期成为第二页的开始日期 表: CREATE TABLE audit_trail ( account_id bigint, user_id bigint, time timestamp, category int, ip_address text, action_description tex

在我的应用程序中,我们将日志存储在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);
CREATE TABLE audit\u trail(
帐户id bigint,
用户id bigint,
时间戳,
int类,
ip地址文本,
行动描述文本,
附加数据地图,
源int,
来源(u detail varchar),
主键((帐户id),时间)
)按时间顺序进行聚类(时间描述);
问题:

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

目标:

  • 以排序顺序获取日志,以便在顶部显示第一天的日志,然后显示第二天的日志,依此类推
  • 没有数据混乱。当发生冲突时,表在Cassandra中重新构造,这可能会提供我们已经在第1页和第2页中看到的数据
  • 数据吞吐量很大,通常约为每小时1000个日志。

    按时间顺序进行聚类(time DESC)


    在表的末尾添加此项解决了我的问题。

    什么是数据模型..创建表billing.domain\u事件(日期文本、用户id bigint、域id bigint、类型文本、子类型文本、事件文本、事件计数器、主键((用户id、日期)、域id、类型、子类型、事件))按照(域\ id ASC、类型ASC、子类型ASC、事件ASC)的顺序进行聚类;表结构的理想方案是对每个日期进行单独的查询。您是说我应该根据天数对数据库进行分区吗?如果您能突出显示我需要对数据模型进行的更改,我将非常高兴。