2017-06-05 5 views
0

私はパターンを検出し、簡単なシッディクエリを記述しようとしています 例:「アイス」「クリーム」「X」「Y」「りんご」「水」SiddhiQLパターンとウィンドウクエリ

イベントアイス&クリームは一緒にすべきであり、リンゴの水は一緒になければならず、xyは窓の任意の値です。長さ(6)

問題は次のクエリはwindow.lengthを制限していません

from every ((s1=windowedStream[s1.val=='ice']-> s2= windowedStream[s2.val=='cream']) 
      -> (a1=windowedStream[a1.val=='apple'] -> a2 = windowedStream[a2.val =='water'])) 
select s1.meta_timestamp, s1.val 
insert into filteredStream 

答えて

0

既存の表記法と同じように、Siddhiでは時間ウィンドウのみに基づいてパターンを制限することができます。以下を参照してください。長ウィンドウに基づいてパターンを制限する回避策として

https://docs.wso2.com/display/CEP420/SiddhiQL+Guide+3.1#SiddhiQLGuide3.1-Pattern

、あなたはインデックスがイベント到着の順序を反映し、「windowedStream」へのインデックス、(第一のすなわち指数と呼ばれる第三の属性を導入することができますイベントは1、2番目のイベントのインデックスは2など)。次に、次のクエリは、6イベントの長さウィンドウ内で発生するパターンをキャプチャします。

from every ((s1=tempStream[s1.val=='ice']-> s2= tempStream[s2.val=='cream']) 
     -> (a1=tempStream[a1.val=='apple'] -> a2 = tempStream[a2.val =='water' and a2.index- s1.index <= 6])) 
select s1.meta_timestamp, s1.val 
insert into filteredStream; 

希望します。

+0

おかげが、問題は、私は、スライディングウィンドウを作成したいとそのスライディングウィンドウの上に私は1つのイベントが、別の例を、以下かどうかを検出したいです: A(次の)B及びC(次の)D 氷(次の)クリームとリンゴ(続き)水 さらに6のウィンドウで、基本的にウィンドウは、保持するパターンを検出するためのチャンクとして扱われます – ha93

+0

私の理解によれば、このパターンは長さ6のスライディングウィンドウ内で発生しますか?そうであれば、与えられた選択肢がうまくいくはずです。 –

+0

はい、ありがとうございます^ _ ^、この種のイベントが発生するたびにアラートを公開できるCEPのダッシュボードは何ですか? – ha93

関連する問題