如何使用 siddhi 实施执行计划?

How to implement execution plans using siddhi?

首先让我描述一下我的需求:

data.csv: 第一列是id,第二列是vlaue。

1,0
2,0
3,0
4,86
5,87
6,88
7,89
8,86
9,0
10,0
11,0
12,0
13,0
14,86
15,87
16,88
17,89
18,0
19,0
20,0

这是我的 InputStream 和我的 OutPutStream:

id int,value int

data.csv 将使用 Event Stream Simulator 插入到 InputStream

如果有五个连续的value>=85,我会记录第一个id,value到OutPutStream。 例如,我会记录id=4,value=86,但是id=14到id=17我会忽略它。

那么如何在执行计划中编写siddhi脚本来实现呢?

=========================================== =============================

data2.csv:

1,0
2,0
3,0
4,86
5,87
6,88
7,89
8,86
9,87
10,88
11,89
12,90
13,91
14,86
15,87
16,88
17,89
18,90
19,90
20,90
21,0
22,0,
23,87
24,85
25,86
26,0
27,17
...
200,91
201,0
from every a1=InputStream[value>=85], a1=InputStream[value>=85]<4> 
select a1.id, a1.value
insert into OutPutStream;

应该可以!

恰好五个连续值 >= 85

from every a1=InputStream[value>=85], a2=InputStream[value>=85]+, a3=InputStream[value<85]
select a1.id, a1.value
having (not (a2[3] is null)) and (a2[4] is null)
insert into OutPutStream;

超过五个连续值 >= 85

from every a1=InputStream[value>=85], a2=InputStream[value>=85]+, a3=InputStream[value<85]
select a1.id, a1.value
having (not (a2[3] is null))
insert into OutPutStream;