我正在使用Esper来聚合我的传感器数据。 数据可以以任何间隔到达,即1秒到120秒。 每个数据点都包含TimeStamp和Value。
我希望Min TimeStamp,Max TimeStamp,平均值和30分钟窗口内的数据点数。 30分钟窗口的起点和终点是固定的,即01:00 am到01:30 am,01:30 am到02:00 am,等等
如何使用Esper实现此目的?
答案 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;