如何在执行之前在Mutator中打印列值?

时间:2015-08-24 11:41:40

标签: cassandra thrift hector

以下是我要插入cassandra

的代码
Set<String> keys = MY_KEYS;
Map<String, String> pairsOfNameValues = MY_MUTATION_BY_NAME_AND_VALUE;

Set<HColumn<String, String>> colums = new HashSet<HColumn<String,String>>();
for (Entry<String, String> pair : pairsOfNameValues.entrySet()) {
    colums.add(HFactory.createStringColumn(pair.getKey(), pair.getValue()));
}

Mutator<String> mutator = template.createMutator();
String column_family_name = template.getColumnFamily();
for (String key : keys) {
    for (HColumn<String, String> column : colums) {
        mutator.addInsertion(key, BASIC_COLUMN_FAMILY, column);
    }
}
mutator.execute();

在某些情况下,我不知道有多少列插入到mutator中。有没有在执行方法之前/之后打印数据。

我尝试了Mutationresult.tostring()。它给出了以下回应。

  

MutationResult花了(3750us)在主机上查询(n / a):   本地主机(127.0.0.1):9160

Mutator to String也没有给我想要的结果。

请帮忙。

1 个答案:

答案 0 :(得分:2)

是的,在执行查询之前尝试mutator.getPendingMutationCount()

除此之外,你必须推动计算你手动添加到mutator的列的逻辑。 toString()没有给你你想要的东西,因为你应该将mutator.execute()绑定到MutationResult。 E.g:

MutationResult mr = mutator.execute();

但突变结果也不能给你带来更多。你可以知道这三件事(2真的......)

// the execution time
long getExecutionTimeMicro();
long getExecutionTimeNano();
// host used for the exec.
CassandraHost getHostUsed();