当表复制到群集中的多个节点时,COPY如何在cassandra中工作?

时间:2016-11-09 16:31:09

标签: cassandra datastax datastax-enterprise cassandra-2.1

假设是否要将表格从RF节点为“3”的7个节点的集群复制到6个节点的另一个集群,RF“3”我该怎么做?我可以将数据从任何节点复制到CSV文件,然后将该数据从CSV文件导入到新集群中的任何节点吗?或者应该将数据从集群中的每个节点复制到新集群?

我应该将复制减少到1然后复制数据并将复制更改为3,但我认为这在生产中不起作用?我怎么能解决这个问题呢?

2 个答案:

答案 0 :(得分:3)

它不是你必须在每个节点上运行的东西。您可以在群集外部的系统上使用cqlsh的COPY命令。从sstables / commitlogs恢复集群是你需要担心的地方(sstableloader也解决了这个问题)。

使用COPY TO时将读取所有数据,使用COPY FROM时,它将通过写入路径发送每一行,该路径将根据您的RF进行分配。它的使用效率远高于使用基本的读/写脚本,但最终仍然是它的作用。

答案 1 :(得分:0)

如果您有权访问Spark,请查看我的帖子(如果您有大量数据,这是进行迁移的最佳方式)。如果您没有大量数据,他们的复制命令将起作用。

www.sestevez.com/cluster-migration-keeping-simple-things-simple /

wget https://github.com/phact/dse-cluster-migration/releases/download/v0.01/dse-cluster-migration_2.10-0.1.jar

dse spark-submit --class phact.MigrateTable --conf spark.dse.cluster.migration.fromClusterHost='<from host>' --conf spark.dse.cluster.migration.toClusterHost='<to host>' --conf spark.dse.cluster.migration.keyspace='<keyspace>' --conf spark.dse.cluster.migration.table='<table>' ./dse-cluster-migration_2.10-0.1.jar