我尝试阅读有关数据存储博客和文档但未找到任何具体内容
有没有办法让Cassandra中的2个表属于同一个分区? 例如:
CREATE TYPE addr (
street_address1 text,
city text,
state text,
country text,
zip_code text,
);
CREATE TABLE foo (
account_id timeuuid,
data text,
site_id int,
PRIMARY KEY (account_id)
};
CREATE TABLE bar (
account_id timeuuid,
address_id int,
address frozen<addr>,
PRIMARY KEY (account_id, address_id)
);
在这里,我需要确保这两个表/ CF都存在于相同的分区上,对于同一个account_id,这两组数据都可以从同一个节点获取
任何指针都受到高度赞赏。
此外,如果有人在使用UDT(用户定义类型)方面有一些经验,我想了解向后兼容性如何工作。如果我修改“addr”UDT以获得更多属性(例如zip_code2 int和name text),具有这些属性的旧行如何工作?它甚至兼容吗?
谢谢
答案 0 :(得分:10)
如果两个表共享相同的复制策略和相同的分区键,则它们将共同分配它们的分区。因此只要两个表位于相同的键空间并且它们的分区键匹配
PRIMARY KEY( account_id )== PRIMARY KEY( account_id ,address_id)
任何给定的account_id将打开(并复制到)相同的计算机。