[英]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.