我在Siddhi
(WSO2流处理器)中有以下查询,当我发送10个事件流(ABC为4个事件,CDE为6个事件)时,我试图通过县获得最终总和。但是,通过下面的查询,我得到了表中前一个事件总和的所有10条记录(总共我看到表中的10条记录)。
我的预期输出应如下:
ABC 13456 34521
CDE 23789 65342
请帮助我在表格中输入最终条目,而不是所有10个条目。
Siddhi查询:
partition with (county of TIVStream )
begin
from TIVStream
select county, sum(tiv_2011) as Sum2011 , sum(tiv_2012) as Sum2012
insert events into TIV
end;
谢谢你, 迪夫亚
答案 0 :(得分:1)
上面你需要的是一种收集事件的窗口。在siddhi中有各种窗口类型主要分为两种,即长度和时间窗口。对于上面的用例,它应该是一个批处理窗口,您可以使用timeBatch。请参阅[1]了解文档。
尝试以下,
partition with (county of TIVStream )
begin
from TIVStream#window.timeBatch(5 sec)
select county, sum(tiv_2011) as Sum2011 , sum(tiv_2012) as Sum2012
insert events into TIV
end;
以上将假设所有10个事件都在5秒内到达。
[1] https://wso2.github.io/siddhi/documentation/siddhi-4.0/#partition