在 Apache Flink 中,Window(窗口)是将无限流(Unbounded Stream)切割为有限流(Bounded Stream)的核心机制。 Flink 的窗口分类通常可以从以下 三个维度 进行划分: --- 1. 按照窗口分配器 (Window Assigner) 分类 —— 最核心的分类 这是最常被问到的分类方式,它决定了数据如何被分配到不同的窗口中。主要分为以下四类: A. 滚动窗口 (Tumbling Windows) 特点:窗口大小固定,窗口之间不重叠,且首尾相接。 适用场景:每个数据只属于一个窗口。例如:每 5 分钟统计一次 PV。 API:, B. 滑动窗口 (Sliding Windows) 特点:窗口大小固定,但窗口之间有重叠。由 (窗口大小)和 (滑动步长)两个参数决定。 适用场景:需要对最近一段时间内的数据进行频率统计。例如:每 1 分钟统计过去 5 分钟的平均值。 API:, C. 会话窗口 (Session Windows) 特点:窗口大小不固定。它由“会话间隙”(Session Gap)决定,即如果一段时间内没有接收到新数据,则认为当前...