我在cassandra中有一个表格,其中包含以下架构:
CREATE TABLE user_album_entity (
userId text,
albumId text,
updateDateTimestamp timestamp,
albumName text,
description text,
PRIMARY KEY ((userId), updateDateTimestamp)
);
获取数据所需的查询将具有updateTimestamp所在的userId = xxx的顺序。因此架构有updateDateTimestamp。
更新表格列时出现问题。查询是:更新用户id = xxx的用户的相册信息。但是根据规范,对于更新查询,我需要updateDateTimestamp的确切值,在正常情况下,应用程序永远不会发送。
这些问题的答案应该是什么,因为我认为这是一个非常常见的用例,其中select查询需要按时间戳排序。非常感谢任何帮助。
答案 0 :(得分:1)
问题是你的表结构允许同一个专辑有多个记录,唯一的区别是时间戳(聚类键)。
三种可能的解决方案:
答案 1 :(得分:0)
如果您的用例是每个分区只包含一行, 然后你就可以为你的表建模,如:
%
CREATE TABLE user_album_entity (
userId text,
albumId text static,
updateDateTimestamp timestamp,
albumName text static,
description text static,
PRIMARY KEY ((userId), updateDateTimestamp)
);
希望这有帮助。