我有一个包含复合主键的表。 名称,描述,ID如何通过Cassandra中的唯一ID处理搜索
PRIMARY KEY (id, name, description)
每当搜索卡桑德拉我需要提供三个按键,但现在我有一个使用案例,我想删除,更新和得到的只是基于ID。
因此,我创建了一个物化视图,对这张表进行了重新排序,使ID先排序,这样我就可以根据ID进行搜索。
但是,如何删除或更新只有一个ID的记录?
我有一个包含复合主键的表。 名称,描述,ID如何通过Cassandra中的唯一ID处理搜索
PRIMARY KEY (id, name, description)
每当搜索卡桑德拉我需要提供三个按键,但现在我有一个使用案例,我想删除,更新和得到的只是基于ID。
因此,我创建了一个物化视图,对这张表进行了重新排序,使ID先排序,这样我就可以根据ID进行搜索。
但是,如何删除或更新只有一个ID的记录?
,如果你使用的是分区键 3列,或者如果您使用的是复合主键目前尚不清楚。
如果您使用的是分区键 3列:
CREATE TABLE tbl (
id uuid,
name text,
description text,
...
PRIMARY KEY ((id, name, description))
);
通知双括号你需要的所有3个组成部分,以确定您的数据。因此,当您通过物化视图中的ID查询数据时,您还需要检索name
和description
字段,然后每个元组发出一个删除<id, name, description>
。
相反,如果使用复合主键与ID
是唯一分区键:
CREATE TABLE tbl (
id uuid,
name text,
description text,
...
PRIMARY KEY (id, name, description)
);
通知单括号,那么你可以简单地发出一个删除,因为你已经知道该分区并不需要其他任何东西。
检查this SO帖子中有关于主键类型的明确说明。
另一件您应该注意的事情是物化视图会为您隐藏一张表格,关于数据建模的相同规则/想法也应该适用于物化视图。
是它是一个3列的复合主键,但如果我只用id创建表,当我创建复合表时,我只能再添加一列来搜索。 –
每个ID有多少个唯一的名称和说明? –