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)

换句话说,当数据到来时,检查之前的值和级别。如果他们有不同的水平,做点什么。

Esper 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);

人们可能会在一个 EPL 语句中使用先验和 case-when 来执行此操作,但我认为使用两个语句会变得更具可读性。

于 2016-04-20T12:42:34.893 回答