在Cassandra中复制Column系列的最快方法是什么?

时间:2012-08-23 07:05:25

标签: java java-ee cassandra hector

我想使用Hector(或任何其他客户端)在Cassandra中使用另一个名称创建Column Family的副本,有没有最快的方法来执行此操作?

由于

3 个答案:

答案 0 :(得分:3)

cassandra hadoop集成读取整个列族以用作地图减少作业的输入;它也可以批量输出到列族。阅读org.apache.cassandra.hadoop包中的代码,了解该怎么做。

对于读取,它会确定哪些令牌在哪个节点上,然后使用该令牌范围执行get_range_slice(它也将令牌范围拆分为可管理的块)。对于它所做的写(或者如果你使用Bulk *类可以做),通过构造一个SSTable然后将其上传到cassandra,与上述解决方案类似。

我怀疑上面使用sstable2json的其他答案会更有效率,但这会有效。

答案 1 :(得分:2)

您可以使用sstable2json读取它,然后使用json2sstable将其作为新CF写回。

答案 2 :(得分:2)

我的回答是涉及逐行迭代,你说你已经在做了。我唯一的改进就是使用KeySlice来获取多个密钥,因此每个请求可以获得多行。