在cassandra中更改分区程序的最佳方法是什么?

时间:2018-02-06 18:28:23

标签: cassandra datastax datastax-enterprise cassandra-2.0

目前我们正在使用随机分区程序,我们希望将其更新为murmur3分区程序。我知道我们可以通过使用sstable2json然后使用json2sstable手动转换您的SSTable来实现此目的。然后我可以使用sstableloader或者我们需要使用murmur3创建新的集群并编写一个应用程序来从旧集群中提取所有数据并写入新的集群。

还有另一种简单的方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:2)

没有简单的方法,它是一个相当大的变化,所以可能想要检查它是否绝对必要(做一些基准测试,可能无法察觉)。如果您无论如何切换到新的群集,它就会发生更多变化。

要实现它:创建一个murmur3的新集群,写入两个集群。在后台读取和复制数据到新集群时,写入是重复的。一旦后台作业完成,翻转从旧集群读取到新集群,然后您可以停用旧集群。

离线:sstable2json-> json2sstable是非常低效的机制。如果你使用sstable reader并使用sstable编写器(即在cassandra代码中编辑SSTableExport来编写新的sstable而不是dumping输出),会快得多。如果您有较小的数据集,则cqlsh COPY命令可能是可行的。