我正在使用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
我遇到的问题是,总是从开头就计算所有事件的平均值,而不是在时间间隔内重置。
什么是使用它的最佳方式。
感谢。
答案 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
}
}
}
感谢收听!!