如何在同一分区内保留 2 个 Cassandra 表
How to keep 2 Cassandra tables within same partition
我尝试阅读 datastax 博客和文档,但找不到任何具体内容
有没有办法让 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)
);
这里我需要确保这两个 tables/CF 将以相同的方式存在于同一个分区上 account_id 这两个数据集都可以从同一个节点获取
非常感谢任何指点。
另外,如果有人有一些使用 UDT(用户定义类型)的经验,我想了解向后兼容性是如何工作的。如果我修改 "addr" UDT 使其具有更多属性(例如 zip_code2 int 和名称文本),那么具有这些属性的旧行如何工作?它甚至兼容吗?
谢谢
如果两个 table 共享相同的复制策略和相同的分区键,它们将共置它们的分区。所以只要两个 table 在同一个键空间中并且它们的分区键匹配
主键 (account_id) == 主键 (account_id, address_id )
任何给定的 account_id 都将在(并复制到)相同的机器上。
我尝试阅读 datastax 博客和文档,但找不到任何具体内容
有没有办法让 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)
);
这里我需要确保这两个 tables/CF 将以相同的方式存在于同一个分区上 account_id 这两个数据集都可以从同一个节点获取
非常感谢任何指点。
另外,如果有人有一些使用 UDT(用户定义类型)的经验,我想了解向后兼容性是如何工作的。如果我修改 "addr" UDT 使其具有更多属性(例如 zip_code2 int 和名称文本),那么具有这些属性的旧行如何工作?它甚至兼容吗?
谢谢
如果两个 table 共享相同的复制策略和相同的分区键,它们将共置它们的分区。所以只要两个 table 在同一个键空间中并且它们的分区键匹配
主键 (account_id) == 主键 (account_id, address_id )
任何给定的 account_id 都将在(并复制到)相同的机器上。