如何使esper epl划分部分并比较值
How to make esper epl divide section and compare value
我是新手 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能做到吗?我怎样才能做到?
"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 语句中使用 prior 和 case-when 来执行此操作,但我认为通过使用两个语句它会变得更具可读性。
我是新手 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能做到吗?我怎样才能做到?
"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 语句中使用 prior 和 case-when 来执行此操作,但我认为通过使用两个语句它会变得更具可读性。