cassandra中跨节点排序行
我有一张桌子:cassandra中跨节点排序行,cassandra,cql,Cassandra,Cql,我有一张桌子: CREATE TABLE sessions ( session_id timeuuid, app_id text, PRIMARY KEY (session_id, app_id) ) 为了在节点之间实现良好的数据分布,我需要将分区键设置为会话id,因为我预计会有数百万这样的会话 在尝试获取属于特定会话ID数组的会话时,如何让DESC排序的行?大概是这样的: this.cassandraClient .query()
CREATE TABLE sessions (
session_id timeuuid,
app_id text,
PRIMARY KEY (session_id, app_id)
)
为了在节点之间实现良好的数据分布,我需要将分区键设置为会话id,因为我预计会有数百万这样的会话
在尝试获取属于特定会话ID数组的会话时,如何让DESC排序的行?大概是这样的:
this.cassandraClient
.query()
.select("*")
.from("sessions")
.where("session_id", "in", instancesIds)
你不能直接用卡桑德拉和这个桌子设计。ASC/DESC仅在同一分区内工作,而不是在多个分区之间工作。您需要在客户端内部执行排序。我希望有一个分页设计,在到达客户端之前需要进行一些排序。此外,在后端获取所有条目并返回手动排序的项目不是一个选项。我只能建议将会话放入存储桶中,使用日期全天作为分区键,会话id作为群集键-这将按顺序返回存储桶中的数据,但在查询多个存储桶/天时不会