WS02 CEP Siddhi查询

时间:2015-07-30 17:07:30

标签: wso2 complex-event-processing wso2cep siddhi

Siddhi CEP新手。除了WS02 CEP上的常规文档之外,有人可以指出一个很好的教程。

以下是我们的要求。指出一些关于编写此类查询的正确方法的线索。

  • 有一个传感器设备通知流(IOT应用程序)。
  • 流输入是通过REST-JSON输出的,输出也是格式化为REST-JSON。 (希望这可以在WS02 CEP 3.1上进行)

需要执行计划的种类: - 如果设备通知报告传感器1的使用情况,则监控是否在5分钟内检查设备通知是否也报告传感器2的使用情况。如果找到,则生成输出流,报告REST-JSON上的复合活动 - 如果在早晨,下午和晚上的时间段内未检测到此类复合活动,则在REST-JSON上生成警告事件流状态。 (那么如何找到没有及时发生的事件) - 如果在早晨,下午和晚上的某些时段内未找到此类复合活动,则在REST-JSON上报告failure1-event-stream状态。

这应该是日常工作,那么在WSO2 CEP中如何删除先前处理的数据。

此致 阿米特

1 个答案:

答案 0 :(得分:2)

查询可以如下(这些是草稿查询,可能需要稍作修改才能使它们运行)

  1. 要检测传感器1,然后在5分钟内检测传感器2(假设sensorStram具有id,值),您可以简单地使用如下图所示的''关键字:
  2. 
    from e1=sensorStream[sensorId == '1'] -> e2=sensorStream[sensorId == '2']
    
    select 'composite activity detected' as description, e1.value as sensor1Value, e2.value as sensor2Value
    
    within 5 minutes
    
    insert into compositeActivityStream;
    
    
    1. 要检测非事件(id = 1到达,但5分钟内没有id = 2),我们可以进行以下两个查询:
    2. 
      from sensorStream[sensorId == '1']#window.time(5 minutes)
      
      select *
      
      insert into delayedSensor1Stream for expired-events;
      
      
      from e1=sensorStream[sensorId == '1'] -> nonOccurringEvent = sensorStream[sensorId == '2'] or delayedEvent=delayedSensor1Stream
      
      select 'id=2 not found' as description, e1.value as id1Value, nonOccurringEvent.sensorId as nonOccurringId
      
      having (not(nonOccurringId instanceof string))
      
      insert into nonOccurrenceStream;
      
      
      

      这将在id = 1事件到达后的5分钟结束时立即检测到未发生的事件。 有关上述逻辑的解释,请查看non occurrence sample of cep 4.0.0(语法有点不同,但想法相同)

      1. 现在,由于您需要定期生成报告,我们需要另一个查询。为方便起见,我假设您需要每6小时(360分钟)报告一次并在此处使用批处理窗口。或者使用新的CEP 4.0.0,您可以使用' Cron窗口'在特定时间生成这个,这对你的用例更好。
      2. 
        from nonOccurrenceStream#window.timeBatch(360 minutes)
        
        select count(id1Value) as nonOccurrenceCount
        
        insert into nonOccurrenceReportsStream for expired-events;
        
        
        

        您可以使用http输入/输出适配器,并为此用例执行json构建器和格式化程序的json映射。