带有两个参数的 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(*))”
我想编写一个 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(*))”