WSO2 CEP:Siddhi QL:创建具有类似事件记录的唯一流 [英] WSO2 CEP : Siddhi QL: Creating a unique stream with similar event records

查看:138
本文介绍了WSO2 CEP:Siddhi QL:创建具有类似事件记录的唯一流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对WSO2 CEP Siddhi QL还是很陌生,我需要分析流中发生的事件.

I am pretty new to WSO2 CEP Siddhi QL, I got a requirement to analyze the events coming to a stream.

例如:我有这样的数据[id,value]:

For ex: I have data coming in like this [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的分组创建一个新的临时流,并检查其中的最高值并发出警报.尝试了不同的模式和联接,但是无法将其归零到确切的解决方案.

In this, I want to segregate each records and group based on the id 1001, 1002 and 1003 records and create a new temp stream for each one of the id's grouped and check the highest value in that and alert it. Tried different patterns and joins, however not able to zero-in to an exact solution.

对解决方案的任何帮助/指导将不胜感激.谢谢.

Any help / guidance towards the solution would be greatly appreciated. Thank you.

推荐答案

在Siddhi中,无法基于事件值创建新的流.但是,由于您的要求是根据ID分配组并提醒每个组的最大值.我们可以通过单个输出流来实现.我们需要做的是保持一个窗口(时间或长度窗口)一段持续时间,然后按id分组并选择max(temp)并插入警报流.请参考以下示例siddhi查询.

In Siddhi its not possible to create new streams based on the event values. However since your requirement is to have groups based on the id and alert the highest value of each group. We could achieve that with a single output stream. What we need to do is maintain a window (time or length window) for a duration, then group by on id and select max(temp) and insert into alert stream. Please refer following sample siddhi query.

from TempStream#window.time(2 min)
select max(temp) as highestTemperature
group by id
insert into alertStream;

这篇关于WSO2 CEP:Siddhi QL:创建具有类似事件记录的唯一流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆