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)
我正在使用 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)