gpt4 book ai didi

database - CQL数据模型绕过二级索引问题

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:32 26 4
gpt4 key购买 nike

我有一个看起来像的模型

StateChange: 
row_id
group_name
timestamp
user_id

我的目标是查询如下:

查询 1 = 查找所有 row_id = X ORDER BY Timestamp DESC 的状态变化查询 2 = 查找所有具有 row_id = X 和 group_name = Y 的状态更改 ORDER BY Timestamp DESC

利用我有限的 CQL 知识,唯一的方法是为上述每个查询创建 2 个查询表

对于查询 1:

CREATE TABLE state_change (
row_id int,
user_id int,
group_name text,
timestamp timestamp,
PRIMARY KEY (row_id, timestamp)
)

对于查询 2:

CREATE TABLE state_change_by_group_name (
row_id int,
user_id int,
group_name text,
timestamp timestamp,
PRIMARY KEY ((row_id, group_name), timestamp)
)

这确实解决了问题,但我现在在 Cassandra 中有重复的数据。

注意:在表上创建一个 group_name 索引是可行的,但我不能再按时间戳进行排序,因为它现在是二级索引。

寻找只需要一张表的解决方案。

最佳答案

您要查找的解决方案不存在。两个不同的查询需要两个不同的表(或至少一个在后台创建表的二级索引)。非规范化是 Cassandra 中的规范,因此您不应将数据复制视为一种反模式——实际上这是建议的模式

关于database - CQL数据模型绕过二级索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26783261/

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