【发布时间】:2020-11-27 19:35:25
【问题描述】:
我想使用 cassandra 作为数据库来存储消息,而在我的模型中消息是按通道聚合的。 消息的 3 个主要重要字段:
- channel_id
- created_by
- message_id(唯一)
主要的读取/获取 API 是按created_by 排序的通道获取消息。
另外,我有一个由channel_id + message_id 更新的小规模消息。
所以我的问题是关于 primary_key 的定义。
如果我定义它(channel_id,created_by)
即使message_id 不在主键中(我确实为查询提供了分区键),我是否可以使用WHERE cLause 像channel_id=X and message_id=XX 一样执行UPDATE?
如果没有,
如果我将像这样定义主键(channel_id,created_by, message_id)
我是否能够使用 where Cause 仅使用 1 个聚类列进行读取 (channel_id,created_by)
并使用 where cause channel_id + message_id 进行更新?
谢谢
【问题讨论】:
标签: cassandra primary-key clustering-key