0

ユーザー定義関数によって返される戻り値に基づいてイベントをフィルター処理する esper epl 式を作成したいのですが、ユーザー定義関数は一度に 2 つのイベント オブジェクトを取得する必要があります。だから私はこのようなクエリを書きました。

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

これは機能しましたが、一度に 1 つの 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'"

エラーは発生しませんが、関数がトリガーされることはありません。

この要件を満たす方法を見つけるのを手伝ってくれる人はいますか?

ありがとうございました。

4

1 に答える 1