当前位置: 首页 > 知识库问答 >
问题:

时间戳排序数据的Cassandra分页:聚类键过滤与本机分页

姬承教
2023-03-14
CREATE TABLE events_by_user (
   user_id text, 
   date timestamp,
   event_id text,
   event_data text,
   PRIMARY KEY ((user_id), date, event_id)
)
WITH CLUSTERING ORDER BY (date DESC, event_id ASC);
    null

共有1个答案

艾凯捷
2023-03-14

第二种方法是更有效和灵活的使用。用第一种方法你不能跳到任何状态,但用第二种方法你可以。

DataStax doc中的第一条有一个限制,分页状态只能在完全相同的语句之间重用(相同的查询字符串,相同的绑定参数)。更改分页状态的内容或试图在不同的语句上设置它将导致此方法失败。

我已经用您的模式在一个用户ID中插入了1000万个事件。
以下是性能

|------------------------------------|
| Driver Paging | Cluster Key Paging | 
| --------------|--------------------|
|  1345026 ms   |      1210296 ms    |
|------------------------------------|
 类似资料:
  • 我正在尝试使用Elasticsearch(2.4)聚合对使用该查询的多个索引按“productId”分组 1) 我想按分数排序,所以我尝试使用 哪个返回 2) 此外,我正在尝试使用分页,“size”键实际起作用,但“from”键不起作用 **更新-聚合结果示例** 希望有人能帮忙

  • 有时,客户端希望 RESTful Web API 提供经过排序后的字段,比如,按照年龄从大到小排列学生;有时,根据客户端条件,需要返回给前端的数据过多,如果一次提供,会大大降低响应速度。此时,可将数据做分割,分成不同的小份,发送给客户端。这一节,我们为大家介绍 RESTful Web API 如何实现数据的排序与分页。 1.排序的使用 在类视图中设置 filter_backends,使用rest_

  • 分页 使用 limit 和 offset 来控制分页数据: limit 指定该请求返回的结果个数 offset 偏移量,指定该请求返回的结果的起始位置 默认 limit 为 20, offset 为 0,我们也可以手动指定 limit 和 offset 来控制。例如,每页展示 100 条数据,需要获取第五页的数据,将 limit 设置为 100、offset 设置为 400 即可。limit 最大

  • {% tabs first=”SDK 1.1.0 及以上版本”, second=”SDK 1.1.0 以下版本” %} {% content “first” %} SDK 1.1.0 及以上版本 分页 使用 limit 和 offset 来控制分页数据: limit 指定该请求返回的结果个数 offset 偏移量,指定该请求返回的结果的起始位置 默认 limit 为 20, offset 为 0,

  • 我们大量使用cassandra wide rows来存储每个用户的时间序列,因为它们非常适合那个用例。假设我们有一个表: 如果时间戳上的冲突可能发生(相同的用户可以用相同的时间戳发出两个不同的事件)。假设我们对所有事件都有一个顺序(每个事件都有一个序列int),那么调整这个模式来解决这个问题的最佳方法是什么。 我将无法执行-cassandra不允许这样做。

  • 任何一个都可以,要求数据是一个字符串化的JSON对象。我的查询将返回用户在给定时间范围内的所有数据。哪种模式更有意义,或者有更好的方法来解决这个问题?