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

Java esper基于事件开始时间的固定窗口,java,performance,bigdata,esper,Java,Performance,Bigdata,Esper,我正在使用Esper聚合我的传感器数据。 数据可能以任何间隔到达,即1秒到120秒。 每个数据点都包含时间戳和值 我想要30分钟窗口中的最小时间戳、最大时间戳、平均值和数据点计数。 30分钟窗口的起点和终点是固定的,即01:00 am至01:30 am、01:30 am至02:00 am等 如何使用Esper实现这一点 例如,见4.2.7.3。Crontab上下文条件: 每30分钟创建一次上下文开始*/30,*,*,*,*,*结束30分钟; 每30分钟一次上下文终止时,从MyEvent输出快照

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

我想要30分钟窗口中的最小时间戳、最大时间戳、平均值和数据点计数。 30分钟窗口的起点和终点是固定的,即01:00 am至01:30 am、01:30 am至02:00 am等


如何使用Esper实现这一点

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

每30分钟创建一次上下文开始*/30,*,*,*,*,*结束30分钟; 每30分钟一次上下文终止时,从MyEvent输出快照中选择count*;

外部定时批处理窗口win:ext\u timed\u batch应该适合您。 但是我想它可以从ESPER4.8.0上获得

或者

win:ext\u timed\u batchTimeStamp.withtimestamp.getHourOfDay,castTimeStamp.getMinuteOfHour/30,int*30,0,0.tomilliesec,30分钟

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

我正在使用Java POJO和EPL。在EPL中有一个crontab计时器。它的工作原理类似于Unix crontab。我认为这个crontab应该是*/30、*、*、*、*、*、*。链接是此cron基于系统时间,数据中的时间戳可能由于网络或其他原因而延迟,并且它将基于时区具有不同的时间戳。cron通常基于时间,而不是系统时间。它基于您可以通过外部计时器控制的任何时间,不管您喜欢它。如果您有延迟数据,您可以使用group by并在group by表达式中计算30分钟的存储桶。