我想使用Hector(或任何其他客户端)在Cassandra中使用另一个名称创建Column Family的副本,有没有最快的方法来执行此操作?
由于
答案 0 :(得分:3)
cassandra hadoop集成读取整个列族以用作地图减少作业的输入;它也可以批量输出到列族。阅读org.apache.cassandra.hadoop
包中的代码,了解该怎么做。
对于读取,它会确定哪些令牌在哪个节点上,然后使用该令牌范围执行get_range_slice(它也将令牌范围拆分为可管理的块)。对于它所做的写(或者如果你使用Bulk *类可以做),通过构造一个SSTable然后将其上传到cassandra,与上述解决方案类似。
我怀疑上面使用sstable2json的其他答案会更有效率,但这会有效。
答案 1 :(得分:2)
您可以使用sstable2json读取它,然后使用json2sstable将其作为新CF写回。
答案 2 :(得分:2)
我的回答是涉及逐行迭代,你说你已经在做了。我唯一的改进就是使用KeySlice来获取多个密钥,因此每个请求可以获得多行。