基于事件开始时间的esper固定窗口

时间:2015-03-02 07:07:42

标签: java performance bigdata esper

我正在使用Esper来聚合我的传感器数据。 数据可以以任何间隔到达,即1秒到120秒。 每个数据点都包含TimeStamp和Value。

我希望Min TimeStamp,Max TimeStamp,平均值和30分钟窗口内的数据点数。 30分钟窗口的起点和终点是固定的,即01:00 am到01:30 am,01:30 am到02:00 am,等等

如何使用Esper实现此目的?

3 个答案:

答案 0 :(得分:1)

外部定时批处理窗口(win:ext_timed_batch)应该适合你。 但我认为它可以从Esper 4.8.0获得 http://esper.codehaus.org/esper-4.8.0/doc/reference/en-US/html_single/index.html#view-win-ext-time-batch

答案 1 :(得分:1)

无论

win:ext_timed_batch(TimeStamp.withTime(TimeStamp.getHourOfDay(),cast(TimeStamp.getMinuteOfHour()/ 30,int)* 30,0,0).toMillisec(),30分钟)

或者

win:ext_timed_batch(TimeStamp.toMillisec() - (TimeStamp.toMillisec()%1800000),30分钟) 其中1800000是30分钟(30 * 60 * 1000)的毫秒数

答案 2 :(得分:0)

例如,参见" 4.2.7.3。 Crontab上下文条件":

create context Every30Min start (*/30, *, *, *, *) end after 30 min; context Every30Min select count(*) from MyEvent output snapshot when terminated;