窗口分配的概念
窗口分配程序(Window Assigners)定义如何将元素分配给窗口。
通过window(...) (for keyed streams)或windowAll()for non-keyed streams)指定需要的WindowAssigner。
WindowAssigner负责将每个传入元素分配给一个或多个窗口。
Flink为最常见的用例提供了预定义的窗口分配程序如:tumbling windows, sliding windows, session windows and global windows.
同时还可以通过扩展WindowAssigner类来实现自定义窗口assigner。
所有内置的窗口分配程序(除了global windows)都根据时间将元素分配给窗口,时间可以是处理时间,也可以是事件时间。
基于时间的窗口有一个开始时间戳(包括)和一个结束时间戳(不包括),它们一起描述窗口的大小。[starTimestamp,endTimestamp):左闭右开
WindowAssigner将会把元素分配到0个,1个或者多个窗口中去。我们看一下WindowAssigner接口:
public abstract class WindowAssigner<T, W extends Window>
implements Serializable {
public abstract

本文介绍了Flink中的窗口分配概念,包括WindowAssigner的作用及其如何根据时间将元素分配到窗口。预定义的窗口分配器如处理时间和事件时间窗口被提及,同时强调了自定义WindowAssigner的必要性,特别是在处理特定周期如周日开始的周窗口和1号开始的月窗口。提供了一个30秒滚动事件时间窗口的自定义实现示例。
订阅专栏 解锁全文
793

被折叠的 条评论
为什么被折叠?



