7

我在 Cassandra 集群中创建了一个旧的 keyspace,但发现它的“比较器”的定义是错误的,所以我必须重新创建一个新的 keyspace 并进行数据迁移。有什么工具可以做数据迁移吗?或者我必须用 Thrift 客户端编程从旧密钥空间读取所有数据并将它们写入新密钥空间?欢迎任何建议或代码片段!

4

2 回答 2

2

这是一个共同的问题,我认为在这里之前已经提出过。您可以COPY在 C* 中使用该命令。您将在此处找到更多详细信息http://www.datastax.com/dev/blog/ways-to-move-data-tofrom-datastax-enterprise-and-cassandra

于 2013-08-23T09:29:13.300 回答
0

我们可以使用COPYcql 中的命令来完成。使用COPY命令,我们可以将表数据保存到.csv文件并从.csv文件返回到表。但是,更好的方法是编写一个程序从表中读取并将其写入另一个表,因为如果表包含集合列类型,如list<text>, map<text, text>, ,则从 csv 导入可能会失败set<text>

例如:- 将表数据从表复制到 .csv 文件:-

COPY keyspace1.table1 (column1, column2) TO 'path/to/file/keyspace1_table1.csv';

要将 csv 数据从文件复制到表中:-

COPY keyspace2.table1 (column1, column2) FROM 'path/to/file/keyspace1_table1.csv';

参考Cassandra 迁移工具

于 2016-04-19T15:39:55.337 回答