2017-04-03 45 views
0

我对WSO2 CEP Siddhi QL相当陌生,我得到了一个分析流入事件的要求。WSO2 CEP:Siddhi QL:创建一条具有类似事件记录的独特流

对于回:我的数据来在这样的[ID,值]:

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

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

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

谢谢你Tharik。从这里我看到的是在Siddhi尝试它,它创建了与输入相同记录的类似流。尽管我们已经提供了group by属性,但我没有看到分组发生。 所以你说我们不能用输入流创建一个具有每个事件中的值的临时流?我的意思是说我们不能将上述样本与包含1001,1002等记录的事件分开吗? – Kannan

相关问题