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

How to print column values in Mutator before execute?

下面是我要插入到 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();

在某些情况下,我不知道有多少列插入了增变器。有没有打印数据before/after的执行方法

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

MutationResult took (3750us) for query (n/a) on host: localhost(127.0.0.1):9160

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

请帮忙。

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

除此之外,您必须手动推动计算要添加到增变器的列的逻辑。 toString() 不会给你想要的东西,因为你应该将 mutator.execute() 绑定到 MutationResult。例如:

MutationResult mr = mutator.execute();

但是变异结果也不会给你更多。你可以知道这 3 件事(2 真的......)

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