如何正确地在Cassandra中的两个表之间迁移数据

How to migrate data between two tables in Cassandra properly

我必须更改我在 Cassandra 中的一个表的架构。不能简单地使用ALTER TABLE命令来完成,因为主键有一些变化。

所以问题是:如何以最好的方式进行这样的迁移?

在这里不能使用 cql 中的 COPY 命令,因为转储文件可能非常大。

我可以通过不创建一些自定义应用程序来解决这个问题吗?

正如 Guillaume 在评论中所建议的那样 - 您不能直接在 cassandra 中执行此操作。模式更改操作在这里非常有限。您必须使用其中一种建议的工具手动执行此类迁移,或者如果您有非常大的表,则可以利用 Spark。

Spark 可以高效地从您的节点读取数据,在本地转换它们并将它们保存回数据库。请记住,此类迁移需要读取整个数据库内容,因此可能需要一段时间。它可能是性能最高的解决方案,但需要更多的准备工作 - Spark 集群设置。