【发布时间】:2015-11-11 04:11:49
【问题描述】:
假设我们有这样的表:
create table users (
id text,
roles set<text>,
PRIMARY KEY ((id))
);
我希望该表的所有值都存储在同一个 Cassandra 节点上(好吧,不完全一样,相同的 3,但所有数据都已镜像,但你明白了),所以要实现我想要的将此表更改为:
create table users_v2 (
partition int,
id text,
roles set<text>,
PRIMARY KEY ((partition), id)
);
如何在不丢失第一个表中的数据的情况下做到这一点? 为了添加这样的列,似乎不可能 ALTER TABLE。我同意。 我尝试做的是从第一个表中复制数据并插入到第二个表中。 当我按原样执行时,分区列丢失,这是预期的。 我可以更改第一个表并在末尾添加一个“分区”列,然后以正确的顺序复制,但我无法更新第一个表中的所有行来设置所有分区,而且似乎没有添加列时的“默认”值。
【问题讨论】: