[英]WSO2 CEP custom function doesn't work as aggregate function
WSO2 CEP自定义函数不能用作聚合函数,而是对每行数据进行操作。
可以说输入流中有value1和value2。
现在,我已经按主机完成了时间批处理和分组。 并且编写了一个自定义函数来查找MEDIAN,并且还使用了内置函数SUM。
但是它的作用是,在分组后将SUM函数应用于所有5行,但是自定义函数逐行调用。 自定义函数类中的处理方法被逐行调用。 因此,SUM返回15,但是我的MEDIAN函数给出的输出为50,这只是最后一个值2。
执行计划查询
from inputStream#window.timeBatch(10 sec)
select value1 as value1, value2 as value2, sum(value1) as sumOfValue1, custom:median(value2) as medianOfValue2 group by host
insert into outputStream;
自定义函数Java类代码段
/**
* Method called when sending events to process
*
* @param obj
* @return
*/
@Override
protected Object process(Object obj) {
我们不能有一个自定义的聚合函数,或者自定义函数只能按行执行吗?
您可以通过编写自定义OutputAttributeAggregator而不是自定义函数来解决此问题。 应该将OutputAttributeAggregator用于此类情况,并且函数用于单个行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.