时间间隔事件

时间:2018-04-08 15:50:39

标签: wso2 wso2cep siddhi

我正在使用externalTime / externalTimeBatch来计算在某个时间间隔内发生的事件的平均值,如下所示

from sensorStream#window.externalTimeBatch(meta_timestamp, 60 sec, meta_timestamp, 60 sec)  [sensorValue > 100]

select meta_timestamp, avg(sensorValue) as sensorValue

insert into filteredStream

我遇到的问题是,总是从开头就计算所有事件的平均值,而不是在时间间隔内重置。

什么是使用它的最佳方式。

感谢。

1 个答案:

答案 0 :(得分:0)

下面的查询似乎使用翻滚时间间隔进行正确的平均。一旦我移动了我的时间持有者属性" meta_timestamp"穿过我的时间窗口它运作正常。

from sensorStream#window.externalTimeBatch(meta_timestamp, 1 min, 0, 1 min)  [sensorValue > 100]
select meta_timestamp, meta_sensorName, correlation_longitude, correlation_latitude, avg(sensorValue) as sensorValue
insert current events into filteredStream

示例发送用于测试的POST消息

{ 
"event":
{ 
    "metaData":
    { 
        "timestamp":1514801340000,
        "isPowerSaverEnabled": false, 
        "sensorId": 701, 
        "sensorName": "temperature"
    }, 
    "correlationData":
    { 
        "longitude": 4.504343, 
        "latitude": 20.44345 

    }, 
    "payloadData":
    { 
        "humidity": 2.3,
        "sensorValue": 150
    }

}

}

感谢收听!!