我必须在Cassandra中更改其中一个表的架构。仅使用ALTER TABLE
命令无法完成,因为主键有一些变化。
所以问题是:如何以最佳方式进行这样的迁移?
在cql中使用COPY
命令不是一个选项,因为转储文件可能非常庞大。
我可以通过不创建一些自定义应用程序来解决这个问题吗?
答案 0 :(得分:1)
像Guillaume在评论中建议的那样 - 你不能直接在cassandra中这样做。模式更改操作在这里非常有限。您必须使用建议的工具之一手动执行此类迁移,或者如果您有非常大的表,则可以使用Spark。
Spark可以有效地从节点读取数据,在本地转换它们并将它们保存回db。请记住,此类迁移需要读取整个数据库内容,因此可能需要一段时间。它可能是性能最高的解决方案,但需要更大的准备 - Spark集群设置。