Esper分组导致重复

时间:2014-06-26 16:40:19

标签: esper

我有一个基本的Esper查询如下:

@Name("MyTestQuery")
@Description("My First Test Query")
select sum(qty), venue
from MyTestWindow
group by venue

查询似乎复制了我的总和的结果,即如果我发送的数量为10,我的查询将多次触发并输出:

10,20,30,40

但是,如果按功能删除组,则只输出10。

有人能说出为什么会这样吗?

4 个答案:

答案 0 :(得分:0)

通常,您需要使用窗口限定Stream名称(MyTestWindow),所以它是 "来自MyTestWindow.win:time(1秒)"。您需要从许多Epser优惠中选择适当的窗口类型,具体取决于您的应用程序。

这个例子:

select sum(qty), venue
  from MyTestWindow.win:time_batch(1 sec)
 group by venue
   having sum(qty) is not null

您可以在http://esper-epl-tryout.appspot.com/epltryout/mainform.html

对此进行简单测试

答案 1 :(得分:0)

分组的最佳方式是触发一个人为的事件"在发送所有事件后。通过这种方式,您可以完全控制您想要输出的内容,而不是让Esper的引擎实时运行。

答案 2 :(得分:0)

您可能必须在select中使用“distinct”功能以避免重复。当您不使用触发变量时,Esper有时会创建重复事件,因此distinct可以让您摆脱不需要的事件。

答案 3 :(得分:-1)

您可以在一次更新和合并功能中使用win:time_batch指定的时间间隔来处理null

选择场地,总和(合并(ty,0))

from MyTestWindow.win:time_batch(1 sec)
group by venue