【发布时间】:2016-06-15 19:58:02
【问题描述】:
我想编写一个 esper epl 表达式,它根据我的用户定义函数返回的返回值过滤事件,我的用户定义必须一次接受两个事件对象。所以我写了一个这样的查询。
select window(*), 'CANDLE NAME' as candleType
from CandleStickEvent(myFunction(*) = 'true').win:length(2)
虽然这行得通,但它一次只传递一个 CandleStickEvent 对象,但我想传递窗口中的两个对象。
为了实现这一点,我也尝试了以下查询。但没有任何效果。
"select window(*), 'CANDLE NAME' as candleType "
"from CandleStickEvent(myFunction(window(*)) = 'true').win:length(2) "
这给出了这个错误信息,
“窗口”聚合函数要求聚合事件提供删除流;请在流上定义一个数据窗口或使用“firstever”、“lastever”或“nth”来代替
我也尝试以下查询,
"select window(*), 'CANDLE NAME' as candleType "
"from CandleStickEvent.win:length(2) "
"output when myFunction(*) = 'true'"
它没有给出任何错误,但我的函数从未被触发。
谁能帮我找到满足这个要求的方法。
谢谢。
【问题讨论】:
标签: complex-event-processing esper epl