在滑动窗口中选择具有最大值的事件

时间:2017-09-04 13:54:37

标签: wso2 complex-event-processing siddhi

我有这个流:

define stream locationStream (cell string, device string, power long);

我想在这个流中选择10秒的滑动窗口,对于每个设备,'cell'属性的值'power'是最大的。

我应该使用什么查询来获得Siddhi的结果?像

这样的东西
from locationStream#window.time(10 seconds)
select max(power), device, <cell where power = max(power)>
group by device
insert all events into cellStream

1 个答案:

答案 0 :(得分:1)

您可以使用通过maxByTimeWindow扩展名提供的Siddhi extrema。用法记录在共享资源中。您必须将其与分区一起使用才能获得每台设备的最大值。建议的查询应如下所示。

partition with ( device of locationStream )
begin
  from locationStream#extrema:maxByTime(power, 10 sec)
  select power, device, cell
  insert events into cellStream
end;