2016-07-26 4 views
0

Esperをパイプライン方式で使用してイベント処理を行いたい。すべてのイベントについて複数のケースを確認する必要があります。 たとえば、次のような場合に受信データを実行したいとします。どうすればいい?それを行う最善の方法は何ですか?電流レベルの値がnullの場合Esper - esperを使用してパイプラインファッション処理を行うことはできますか?

ケース1 =ケース2 =」
「電流レベルが最後の5つの連続値の平均値よりも400%大きい場合は、例外-1でイベントをマーク」その後、例外-2" としてマーク
ケース3 = 『ケース2とケース3が一致しない場合、データはマークされて、私が何をしたいの大まかな表現された後、』 『安全』

として

 if (case1) { 
     mark with Exception 1 
    } 

    if (case2) { 
     mark with Exception 2 
    } 

    if (none of the above cases matches) { 
     mark as safe 
    } 
+0

@goodieあなたもこの点をお答えくださいすることができ - >「現在のレベルは最後の5つの連続した値の平均より400%大きい場合、それはとしてnullマークの場合、 『Exception1』としてマーク'Exception 2'、そうでない場合は 'safe'とマークします。さらに、イベントの 'location_id'プロパティでパーティションを分割する必要があります。チェックのための5つの連続する値の平均を計算する間、そのlocation_idの連続した値だけを考慮する必要があります。 –

答えて

0

ので、この「現在のレベルが400%の最後の5連続した値の平均値よりも大きい場合には、」あなたのための検出を行う方法を求めていませんでした。この

on Event 
insert into OutputStream select 'Exception 1' as label, * where level_detected > 400 
insert into OutputStream select 'Exception 2' as label, * where level_detected = null 
insert into OutputStream select 'safe' as label, * 

ような何か私の答えの一部ではありません。

Esper docs for split stream

+0

ありがとう@ uggie、本当に助けた –

+0

あなたはこの点にもお答えください - > "現在のレベルが最後の5つの連続する値の平均よりも400%大きい場合は 'Exception1'とマークし、例外2 '、そうでない場合は「安全」とマークしてください。 また、イベントの「location_id」プロパティでパーティション化する必要があります。チェックのための5つの連続する値の平均を計算する間、そのlocation_idの連続した値だけを考慮する必要があります。 –

+0

どうもありがとうございました〜 –

関連する問題