时间窗口参考说明

在使用 时间窗口聚合模板 开发AI数据聚合任务时,需要配置时间窗口策略。对时间窗口的解释和说明如下:

事件时间

流数据聚合处理通常是基于事件时间的,即事件实际发生的时间。更准确地说,每个事件都有一个对应的时间戳,时间戳是数据记录的一部分。事件时间实际上是一个时间戳。当事件时间用于定义时间窗时,流处理引擎可以处理乱序事件流以及变化的时间偏差,并根据事件实际发生的时间计算出有意义的结果。

时间窗口

EnOS流数据处理引擎是基于时间窗口(微批量模型)的流计算引擎,以指定的窗口大小(批量大小的间隔)来处理数据。时间窗口大小可以确定流计算任务获取数据的频率,即在一次窗口分析中需要处理的数据量。

时间窗口的划分是以格林威治时间1970年1月1日00时00分00秒开始,当某窗口内的数据到达时(以事件时间为准),则窗口产生。

滚动窗口

滚动窗口将每个元素分配给指定窗口大小的窗口。这种窗口有固定的窗口大小并且不重叠。例如,如果指定一个大小为5分钟的翻滚窗口,将评估当前窗口,并且每5分钟启动一个新窗口,如下图所示。

../_images/window_type.png

窗口延迟

若窗口不设置延迟,当下一个窗口产生时,正常情况下前一个窗口已完成计算,可进行销毁。但是实际情况下,受制于各种因素比如资产故障、传输效率等,资产数据可能会延时上送。这种情况下可允许窗口设置继续停留的时间,即延迟销毁的时间。在延迟时间内到达的属于前一个窗口的数据会被纳入前一个窗口进行再次计算,超出延迟时间到达的窗口数据会被直接丢弃。如下图所示:Window2 的窗口大小是5分钟,此窗口应包含所有时间戳位于11:00-11:05这个时间区间内的元素,不设置窗口延迟时,Window2 窗口将会在11:05时刻销毁,Data1Data2 会被丢弃,当设置窗口延迟为5分钟时,Data1 会参与 Window2 窗口的计算,但是Data2会被丢弃。

../_images/latency_setting.png