如何在同一分区内保留2个Cassandra表
我试图阅读datastax的博客和文档,但找不到任何关于这方面的具体信息 有没有办法让Cassandra中的两个表属于同一个分区? 例如:如何在同一分区内保留2个Cassandra表,cassandra,datastax,datastax-enterprise,cql3,datastax-java-driver,Cassandra,Datastax,Datastax Enterprise,Cql3,Datastax Java Driver,我试图阅读datastax的博客和文档,但找不到任何关于这方面的具体信息 有没有办法让Cassandra中的两个表属于同一个分区? 例如: 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, P
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)
);
创建类型addr(
街道地址1文本,
城市文本,
国家文本,
国家文本,
邮政编码文本,
);
创建表foo(
帐户id timeuuid,
数据文本,
站点id int,
主键(帐户id)
};
创建表格栏(
帐户id timeuuid,
地址_idint,
地址冻结,
主键(帐户id、地址id)
);
这里我需要确保这两个表/CF都位于同一个分区上,这样对于同一个帐户\u id,这两组数据都可以从同一个节点获取
非常感谢您的指点
另外,如果有人在使用UDT(用户定义类型)方面有一些经验,我想了解向后兼容性是如何工作的。如果我修改“addr”UDT以拥有更多的属性(例如zip_code2 int和name text),那么具有这些属性的旧行是如何工作的?它甚至兼容吗
谢谢如果两个表共享相同的复制策略和相同的分区键,它们将对它们的分区进行联合。因此,只要这两个表在相同的键空间中并且它们的分区键匹配 主键(帐户id)=主键(帐户id、地址id)
任何给定的帐户\u id都将启用(并复制到)相同的机器。非常好!+1,快速、清晰的回答。你能帮我回答UDT问题的另一部分吗?最好将不相关的问题分成不同的SO问题。这将使未来的服务更好地为寻求类似答案的人提供服务。明白了。我发布了另一个问题:我被你的答案弄糊涂了在这里回答:也许你应该评论一下你对这个答案不理解的地方?@VishalSharma