2016-05-27 4 views
0

私は2つのストリーム、streamAstreamBを持っています。 streamAにはIDと一致するイベントがあり、streamBには同じIDが入ります。Siddhi CEP - スライドウィンドウに参加していないイベント

streamAから私が知りたいのは、IDがstreamBに入っていないということです。

私はこれを試してみましたが、うまくいかなかった:

from streamA as A join streamB#window.time(1 min) as B on A.id == B.id select S.Id insert expired events into streamC;

は私がこの問題を解決する方法を知ってみましょう。

+0

をあなたはストリームAのイベントは、常にストリームBから対応するイベントの後に来るか、その逆になるようなイベントの順序保証を持っていますか? – Tishan

+0

@甲山:はい。保証があります。 – spiralarchitect

答えて

0

外部結合[1]を使用してこの要件を満たすことができます。例:

from streamA as A left outer join streamB#window.time(1 min) as B on A.id == B.id select A.Id, B.Id insert into streamC; 

上記のクエリでは、ウィンドウ内に一致するイベントがない場合、B.Idはnullになります。したがって、streamCを使用してヌル属性のイベントを分離し、さらに処理する別のクエリを記述することができます。

[1] https://docs.wso2.com/display/CEP410/SiddhiQL+Guide+3.0#SiddhiQLGuide3.0-Outerjoins

関連する問題