【发布时间】:2019-10-15 13:06:42
【问题描述】:
我在下面定义了输入流。 Datetime 字符串类似于 2010-09-01 06:59:00.000,结果是 double,例如 157,382,而 UnixDateTime 是 long 类型,例如 1283324340111。
define stream HStream(ID int, DateTime String, Result double, UnixDateTime long);
我想为 100 个事件创建长度批次,显示 result 列的平均值,并且我想将这些批次相互比较。我想对接下来的 5 个批次(每个批次都包含 100 个事件)进行滑动比较。所以我想比较第一批(0-100 事件)和第二批(101-200),直到第六批(501-600)。我希望第二批比较到第七批。我想通过比较实现的是,当 4 个或更多(来自 5 个)批次的批次平均结果全部大于或全部小于 1(与原始批次的平均结果相比)时,我想记录有关原始批次的信息。
我的代码如下。问题我不知道确切的语法。我查看了 WSO2 和 Siddhi 的教程和文档,但我无法解决问题。
@info(name = 'MovingAverageQuery')
from every e1=HStream, e2=HStream[e1.avg(Result) <= avg(Result))+, e2=HStream[e2[last].avg(Result) <= avg(Result)]
select ID, DateTime, Result,
avg(Result), UnixDateTime
output last every 100 events
insert into OutputStream;
@sink(type='log', prefix='LOGGER')
define stream OutputStream(Nr ID, DateTime String, Result double, Avg double, UnixDateTime long);
【问题讨论】:
标签: wso2 siddhi stream-analytics