Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
在cassandra中更改分区器的最佳方法是什么_Cassandra_Datastax_Datastax Enterprise_Cassandra 2.0 - Fatal编程技术网

在cassandra中更改分区器的最佳方法是什么

在cassandra中更改分区器的最佳方法是什么,cassandra,datastax,datastax-enterprise,cassandra-2.0,Cassandra,Datastax,Datastax Enterprise,Cassandra 2.0,目前,我们正在使用随机分区器,我们希望将其更新为3分区器。我知道我们可以通过使用sstable2json和json2stable手动转换SSTables来实现这一点。然后我可以使用sstableloader,或者我们需要使用sstableloader 3创建新集群,并编写一个应用程序来从旧集群中提取所有数据并写入新集群 有没有其他简单的方法来实现这一点?没有简单的方法,这是一个相当大的变化,因此可能需要检查它是否绝对必要(做一些基准测试,它可能无法检测)。这更像是一种改变,如果你切换到一个新的集

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


有没有其他简单的方法来实现这一点?

没有简单的方法,这是一个相当大的变化,因此可能需要检查它是否绝对必要(做一些基准测试,它可能无法检测)。这更像是一种改变,如果你切换到一个新的集群

要进行实时操作:创建一个新的集群,它是3,写入两个集群。在后台,在重复写入的同时将数据读取并复制到新集群。后台作业完成后,从旧集群到新集群进行翻转读取,然后可以解除旧集群的工作


离线:sstable2json->json2stable是一种非常低效的机制。如果使用sstable读取器和sstable编写器(即在cassandra代码中编辑SSTableExport以编写新的sstable而不是转储输出),则速度会快得多。如果您有较小的数据集,那么cqlsh COPY命令可能是可行的。

没有简单的方法,这是一个相当大的更改,因此可能需要检查它是否绝对必要(执行一些基准测试,它可能无法检测)。这更像是一种改变,如果你切换到一个新的集群

要进行实时操作:创建一个新的集群,它是3,写入两个集群。在后台,在重复写入的同时将数据读取并复制到新集群。后台作业完成后,从旧集群到新集群进行翻转读取,然后可以解除旧集群的工作

离线:sstable2json->json2stable是一种非常低效的机制。如果使用sstable读取器和sstable编写器(即在cassandra代码中编辑SSTableExport以编写新的sstable而不是转储输出),则速度会快得多。如果数据集较小,则可以使用cqlsh COPY命令