我在Cassandra集群中创建了一个旧的密钥空间,但发现其“比较器”的定义是错误的,所以我必须重新创建一个新的密钥空间并进行数据迁移。有没有工具可以进行数据迁移?或者我必须使用Thrift客户端编程从旧密钥空间读取所有数据并将其写入新的密钥空间?欢迎任何建议或代码片段!
答案 0 :(得分:2)
这是一个常见问题,我认为此前已经提出过这个问题。
您可以在C *中使用COPY
命令。
您可以在http://www.datastax.com/dev/blog/ways-to-move-data-tofrom-datastax-enterprise-and-cassandra
答案 1 :(得分:0)
我们可以在cql中使用COPY
命令来完成。使用COPY
命令,我们可以将表数据保存到 .csv 文件,并从 .csv 文件返回到表。但是,更好的方法是编写一个程序来从表中读取并将其写入另一个表,因为如果表包含list<text>
,map<text, text>
,{{1}等集合列类型,则从csv导入可能会失败}}
例如: - 要将表数据从表复制到.csv文件: -
set<text>
将csv数据从文件复制到表格: -
COPY keyspace1.table1 (column1, column2) TO 'path/to/file/keyspace1_table1.csv';