如何使用 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;
首先让我描述一下我的需求:
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;