Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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
Java Cassandra增量计数器有1个更新?_Java_Batch Processing_Increment - Fatal编程技术网

Java Cassandra增量计数器有1个更新?

Java Cassandra增量计数器有1个更新?,java,batch-processing,increment,Java,Batch Processing,Increment,当我使用该行中的几个计数器列更新该行时,我需要执行以下操作: mutator.incrementCounter(rowid1, "cf1", "counter1", value); mutator.incrementCounter(rowid1, "cf1", "counter2", value); mutator.incrementCounter(rowid1, "cf1", "counter3", value); 如何在1次更新中完成以上3项?因为我不想打数据库三次。我只想点击数据库一次。

当我使用该行中的几个计数器列更新该行时,我需要执行以下操作:

mutator.incrementCounter(rowid1, "cf1", "counter1", value);
mutator.incrementCounter(rowid1, "cf1", "counter2", value);
mutator.incrementCounter(rowid1, "cf1", "counter3", value);

如何在1次更新中完成以上3项?因为我不想打数据库三次。我只想点击数据库一次。另外,我使用incrementCounter的原因是具有很强的一致性(incrementCounter比addCounter更一致)。你能提供一些代码吗?谢谢大家!

我问你到目前为止做了什么研究,因为在我看来你什么都没做。我通常会在这一点上走开,但出于某种原因,我还是选择回答


让我们查一查。首先是:

Mutator从集群中插入或删除值。有两种主要的方法可以使用变异子:1。使用insert/delete方法可以立即插入一组delete值。或2。使用addInsertion/AddDelete方法计划批处理操作,然后在批处理中执行()所有这些操作。该类不是线程安全的

类摘要指出,
Mutator
支持在一个批处理中执行多个操作,并指出您可以使用
add*
方法来执行该操作。(您将问题标记为“批处理”,因此您知道这是您需要的功能。)类摘要下的第一件事是
addCounter()
函数,描述如下:

通过Mutator.execute()计划在批处理模式下插入计数器列的增量

问题解决了

或者,您可以使用IDE来探索当前的代码,这虽然有效,但效率低下。
incrementCounter()
调用中提供的一行摘要指出,这是一种方便的方法,强烈建议有其他方法来增加计数器。浏览
Mutator
界面,即使只是自动完成,也会很快导致您进入
addCounter()
,因为与计数器相关的函数很少,
addCounter()
按字母顺序排在第一位

如果您希望完全忽略文档,第三种选择是直接访问
incrementCounter()
很快就会显示为
addCounter()
,然后是
execute()

这些方法中的任何一种都可以让您得出这样的结论:您可以通过多次调用
addCounter()
,然后调用一个
execute()
,一次递增多个计数器


当然,第四种选择是直接进入堆栈溢出并请求代码。这通常会让你被发送到,只是偶尔会让你得到像这样的答案,详细解释你可以回答自己问题的所有方式。现在,我将用那篇文章中的一个片段来结束我的回答:

问题是,这个人解决问题的技巧是寻求解决方案。不要寻求关于如何完成任务的建议,或者询问可能要研究的类的名称,或者一个示例的链接,而只是询问完整格式的代码。这不是解决问题,软件工程完全是解决问题


如果您只想点击数据库一次,那么试试这个

mutator.addCounter(rowid1, "cf1", HFactory.createCounterColumn("counter1", value))
mutator.addCounter(rowid1, "cf1", HFactory.createCounterColumn("counter2", value))
mutator.addCounter(rowid1, "cf1", HFactory.createCounterColumn("counter3", value))
query.execute()

到目前为止,你做了什么样的研究?我已经连续4天每天15小时不间断地编写代码,我开始觉得自己快要死了。阅读第四个选项和链接的文章让我笑得很厉害,我很想改天再去。谢谢你让我开心,谢谢你对这个问题的详细回答++