我有一个场景,让我们说下面是我的cassandra表
CREATE TABLE USER (
id TEXT,
name TEXT,
age int,
role TEXT,
PRIMARY KEY ((id, role), age));
现在,我应该能够使用id
或role
或id
和role
来查询用户表。我的问题是当我在id
子句中仅使用role
或WHERE
来查找用户时,在这种情况下cassandra会在不同的分区(和节点)中搜索用户记录吗?因为我没有使用id
和role
来搜索我的桌子的PK。
答案 0 :(得分:1)
使用复合分区键时,例如PRIMARY KEY ((id, role), age)
Cassandra将这两个值连接在一起。它是一种用于创建更独特或有时更精细的分区键的技术,以更好地控制数据在各个数据中心周围的均匀分布。
因为id和role是连接在一起的,所以你必须始终同时提供id和角色。如果只提供复合分区键的一部分,Cassandra将不知道该怎么办。