【问题标题】:Esper user defined functions which takes two parametersEsper 用户定义函数,接受两个参数
【发布时间】: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


    【解决方案1】:

    在 SQL 中,have 子句用于过滤聚合,而 EPL 符合 sql 标准。试试“...有一些功能(窗口(*))”

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      相关资源
      最近更新 更多