我是WSO2 CEP Siddhi QL的新手,我要求分析流入的流程。
例如:我有这样的数据[id,value]:
InputStream=[1001,90]
InputStream=[1001,85]
InputStream=[1002,70]
InputStream=[1001,85]
InputStream=[1003,70]
InputStream=[1003,85]
InputStream=[1002,70]
InputStream=[1003,70]
InputStream=[1003,85]
InputStream=[1002,70]
InputStream=[1001,95]
InputStream=[1001,65]
在此,我想根据id 1001,1002和1003记录隔离每个记录和组,并为每个id分组创建一个新的临时流,并检查其中的最高值并发出警报它。尝试了不同的模式和连接,但无法将其置于精确的解决方案中。
非常感谢任何有关解决方案的帮助/指导。谢谢。
答案 0 :(得分:0)
在Siddhi中,无法根据事件值创建新流。但是,由于您的要求是根据ID设置组并提醒每个组的最高值。我们可以通过单个输出流实现这一目标。我们需要做的是维持一个持续时间的窗口(时间或长度窗口),然后按ID分组并选择max(temp)并插入警报流。请参考以下示例siddhi查询。
from TempStream#window.time(2 min)
select max(temp) as highestTemperature
group by id
insert into alertStream;