0

私はを使用して新しいesperです。についてよくわからないesper eplので困っています。

問題はこれです。

ユーザーが値セクションを定義します。

For Example,

Level1 : 1~3
Level2 : 4~6
Level3 : 7~9

データが最初に来たら、セクションをチェックしてイベントを作成します。ただし、以前の値と新しい値は同じレベルで何もしません(ex. prev value=1, next value=2 These are in same Level1)

つまり、データが来たら、前回の値とレベルを確認します。レベルが違う場合は、何かをしてください。

エスパーEplはこれを行うことができますか?どうすれば作れますか?

4

1 に答える 1

0

"prior" と "prev" の両方を使用すると、特定のイベントの前のイベントにアクセスできます。SQL 標準の「case when then」は、SQL 標準の if-then-else です。次のようなことができます。

insert into CategorizedStream select 
 case when value between 1 and 3 then 1 
   when value between 4 and 6 then 2
   when value > 6 then 3
 end as level from SomeEvent;

select * from CategorizedStream(prior(level) != level);

1 つの EPL ステートメントでこれを行うために、prior と case-when を使用することもできますが、2 つのステートメントを使用することでより読みやすくなると思います。

于 2016-04-20T12:42:34.893 に答える