Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 在Cassandra中迁移数据的最佳方式是什么_Spring Boot_Database Migration_Cassandra 3.0_Spark Cassandra Connector - Fatal编程技术网

Spring boot 在Cassandra中迁移数据的最佳方式是什么

Spring boot 在Cassandra中迁移数据的最佳方式是什么,spring-boot,database-migration,cassandra-3.0,spark-cassandra-connector,Spring Boot,Database Migration,Cassandra 3.0,Spark Cassandra Connector,我有一个由5个节点组成的Cassandra集群,具有写一致性:LOCAL\u QUORUM。集群有TB的数据。现在,我需要将数据迁移到同一集群中不同的keyspace。以下是要求 keyspace_1 --> read data --> transform --> insert in keyspace_2. 现在我们可以通过一些多实例微服务来实现这一点,我们可以从keyspace_1读取数据,然后对其进行转换,然后将其插入目标keyspace 但有没有更好的方法来解决这个问题

我有一个由5个节点组成的Cassandra集群,具有
写一致性:LOCAL\u QUORUM
。集群有TB的数据。现在,我需要将数据迁移到同一集群中不同的
keyspace
。以下是要求

keyspace_1 --> read data --> transform --> insert in keyspace_2.
现在我们可以通过一些多实例微服务来实现这一点,我们可以从
keyspace_1
读取数据,然后对其进行转换,然后将其插入目标keyspace


但有没有更好的方法来解决这个问题呢。我找到一篇文章。但在这里,SSTable主要是在不进行任何转换的情况下进行传输的。但我需要一个介于两者之间的数据转换机制。这里有谁能给我推荐一个好方法/有人之前做过这种类型的活动吗?

最简单的方法是使用Spark加载数据、执行转换,并将数据保存到新表中-由于Spark能够执行数据处理的自动并行化,因此比使用Spring Boot更容易。根据您的要求,您可以使用Spark Cassandra连接器中的一个或多个

val df=sqlContext.read
.format(“org.apache.spark.sql.cassandra”)
.选项(映射(“键空间”->“ks”,“表”->“选项卡))
负载
val dfTransformed=df。选择..../do转换
DFT变换写入
.format(“org.apache.spark.sql.cassandra”)
.选项(映射(“键空间”->“ks2”,“表”->“选项卡))
拯救
如果您不使用Spark,那么您需要对所有数据执行完全扫描,转换读取数据并写入它们-但这是一项更复杂的任务,因为您需要处理故障等。此外,从Cassandra有效读取数据也不是一项容易的任务-您可以考虑这一点,但我建议首先考虑Spark