带有两个参数的 Esper 用户定义函数

Esper user defined functions which takes two parameters

我想编写一个 esper epl 表达式,它根据我的用户定义函数 return 值 return 过滤事件,我的用户定义必须一次接受两个事件对象.所以我写了一个这样的查询。

select window(*), 'CANDLE NAME' as candleType
from CandleStickEvent(myFunction(*) = 'true').win:length(2)

虽然这行得通,但它一次只传递一个 CandleStickEvent 对象,但我想传递 window.

中的两个对象

为了实现这一点,我也尝试了以下查询。但是没有任何效果。

"select window(*), 'CANDLE NAME' as candleType "
"from CandleStickEvent(myFunction(window(*)) = 'true').win:length(2) "

这给出了这个错误信息,

The 'window' aggregation function requires that the aggregated events provide a remove stream; Please define a data window onto the stream or use 'firstever', 'lastever' or 'nth' instead

我也尝试了以下查询,

"select window(*), 'CANDLE NAME' as candleType "
"from CandleStickEvent.win:length(2) "
"output when myFunction(*) = 'true'"

它没有给出任何错误,但我的函数从未被触发。

任何人都可以帮助我找到满足此要求的方法。

谢谢。

在 SQL 中,having 子句用于针对聚合进行过滤,EPL 符合 sql 标准。尝试“...有一些功能(window(*))”