gpt4 book ai didi

cassandra - 如何更改 Cassandra 中的 PARTITION KEY 列?

转载 作者:行者123 更新时间:2023-12-04 17:08:37 25 4
gpt4 key购买 nike

假设我们有这样的表:

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 似乎是不可能的。我没问题。
我尝试做的是从第一个表中复制数据并插入到第二个表中。
当我这样做时,分区列丢失了,这是意料之中的。
我可以更改第一个表并在最后添加一个“分区”列,然后以正确的顺序 COPY,但我无法更新第一个表中的所有行以设置所有分区,并且似乎没有添加列时的“默认”值。

最佳答案

您根本无法更改 Cassandra 表的主键。您需要使用新架构创建另一个表并执行数据迁移。我建议您为此使用 Spark,因为只需几行代码就可以轻松地在两个表之间进行迁移。

This还回答了改变主键的问题。

关于cassandra - 如何更改 Cassandra 中的 PARTITION KEY 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32068765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com