我正试图在wso2 2的CEP中写一份执行计划。但是,如果使用聚合函数,则select子句中会出现错误。在我的例子中,它是“和”。详情请参阅下文:
@Export('stream.sla.consolidated.breach:1.0.0')
define stream ConsolidatedBreachSLA (breach_date string, breach_count_per_day int,request_id int);
@Export('stream.sla.breach.details:1.0.0')
define stream BreachSLA (request_id int, breach_date string, breach_flag int);
from BreachSLA#window.length(50)
select breach_date as breach_date,sum(breach_flag) as breach_count_per_day,request_id
group by breach_date
having breach_count_per_day > 2
insert into ConsolidatedBreachSLA;CEP误差
但是,当我从select子句中删除"sum“时,一切似乎都得到了正确的验证。
from BreachSLA#window.length(50)
select breach_date as breach_date,breach_flag as breach_count_per_day,request_id
group by breach_date
having sum(breach_count_per_day) > 2
insert into ConsolidatedBreachSLA;其目的是获取select子句中记录的和,以便可以将sum的值导出到发布服务器。
发布于 2016-03-03 05:01:00
和函数返回一个长值 (用于int或长输入),而属性'breach_flag‘则定义为int。似乎已经用int属性定义了流,因此会发生冲突,您需要将定义的流的(ConsolidatedBreachSLA和任何后续流)属性类型(即breach_count_per_day类型)修改为'long‘以获得和。
发布于 2016-03-04 05:29:03
拉吉夫对冲突的看法是对的。
我用这个问题尝试了不同的东西,我尝试了“转换”函数,它起了作用。
所以我把我的Siddhi查询改为
从BreachSLA#window.length(50)中选择breach_date,转换(sum(Breach_flag),'int')作为breach_count_per_day组,由breach_date将breach_count_per_day >2插入BreachCountDay;
https://stackoverflow.com/questions/35763219
复制相似问题