我有这个流:
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
答案 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;