esper 固定 window 基于事件开始时间

esper fixed window based on event starting time

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

我想要 30 分钟内的最小时间戳、最大时间戳、平均值和数据点计数 window。 30 分钟 window 的起点和终点是固定的,即 01:00 上午到 01:30 上午,01:30 上午到 02:00 上午,等等

如何使用 Esper 实现此目的?

因此例如参见“4​​.2.7.3. Crontab 上下文条件”:

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

外部定时批处理 window (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

两者之一

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

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