Time interval events

75 Views Asked by At

I am playing with the externalTime / externalTimeBatch in order to calculate average value for events that happen within a certain time interval as below

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

select meta_timestamp, avg(sensorValue) as sensorValue

insert into filteredStream

The issue I am having is that the average is always calculated for all events from the begining, rather then getting reset on the time interval.

Whats the best way to use it.

Thanks.

1

There are 1 best solutions below

0
Basixp On BEST ANSWER

Below query seems to do the proper averaging using tumbling time interval. Once I moved my time holder attribute "meta_timestamp" to cross my time window it worked properly.

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

example POST message sent for testing

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

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

}

}

Thanks for listening !!