gpt4 book ai didi

Cassandra CQL - 具有多个聚类列的聚类顺序

转载 作者:行者123 更新时间:2023-12-04 14:13:16 25 4
gpt4 key购买 nike

我有一个主键定义的列族,如下所示:

...
PRIMARY KEY ((website_id, item_id), user_id, date)

将使用以下查询进行查询:
SELECT * FROM myCF
WHERE website_id = 30 AND item_id = 10
AND user_id = 0 AND date > 'some_date' ;

但是,我想仅按日期排序我的列族,例如 SELECT date FROM myCF ;将返回最近插入的日期。

由于聚类列的顺序,我得到的是每个 user_id 然后每个日期的顺序。
如果我将主键定义更改为:
PRIMARY KEY ((website_id, item_id), date, user_id)

我不能再运行相同的查询,因为必须限制日期是 user_id。

我想可能有某种方式可以说:
...
PRIMARY KEY ((website_id, shop_id), store_id, date)
) WITH CLUSTERING ORDER BY (store_id RANDOMPLEASE, date DESC) ;

但它似乎并不存在。最糟糕的是,也许这完全是愚蠢的,我不明白为什么。

有没有办法实现这一目标?我错过了什么吗?

非常感谢!

最佳答案

您的查询示例限制了 user_id,以便应使用第二种表格式。但是,如果您实际上正在尝试运行这样的查询

SELECT * FROM myCF
WHERE website_id = 30 AND item_id = 10
AND date > 'some_date'

然后你需要一个额外的表来处理这些查询,它只会在日期而不是用户 id 上排序
Create Table LookupByDate ... PRIMARY KEY ((website_id, item_id), date)

关于Cassandra CQL - 具有多个聚类列的聚类顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com