我有一个名为eventCount的事件表,它具有以下值:
ID | eventCount
1 3
2 1
3 5
4 1
我有一个数据流进来,我在一段时间内计算某种类型的值(1秒),并根据我将计数的类型和时间段()并写入count()的值在通讯行中。
我需要在事件表中对值进行求和。
我尝试创建另一个事件表并加入两者。虽然我收到的错误是你不能从2个静态来源加入。
在WSO2 CEP中从SIddiQL执行此操作的正确方法是什么
答案 0 :(得分:0)
在您的方案中,事件表中的值的总和等于事件的总数,不是吗?那么为什么你需要把它保存为一个事件表,你不能只是那时(如下)?
@Import('dataIn:1.0.0')
define stream dataIn (id int);
@Export('totalCountStream:1.0.0')
define stream totalCountStream (eventCount long);
@Export('perIdCountStream:1.0.0')
define stream perIdCountStream (id int, eventCount long);
partition with (id of dataIn)
begin
from dataIn#window.time(5 sec)
select id, count() as eventCount
insert into perIdCountStream;
end;
from dataIn#window.time(5 sec)
select count() as eventCount
insert into totalCountStream;
ps:如果你真的需要事件表,你总是可以在两个单独的表中保存totalCountStream和perIdCountStream。