❶ Flink 时间窗口全解析!(建议收藏)
Flink时间窗口解析详解:
首先,时间窗口的核心在于时间定义,比如1分钟窗口,即数据在特定时间范围内被处理。Flink对时间有三种理解:
事件发生的时间,比如用户点击链接的时刻。
节点接收数据的时间,如Source从Kafka读取数据的那一刻。
Operator处理数据的时间,即timeWindow接收到数据的时刻。
从Flink 1.12版本开始,EventTime被默认作为时间标准,它基于事件产生时设备上的时间,但处理时会受延迟和乱序影响,但有利于统计实时数据指标和处理乱序事件。
相比之下,ProcessingTime是数据在Operator处理时的系统时间,虽有最佳性能和低延迟,但无法准确反映数据产生时的实时变化,因为Flink分布式环境会引入延迟。
IngestionTime则是数据进入Flink的时间,如Kafka消费操作的完成时间,它介于EventTime和ProcessingTime之间,对无序事件处理有限,Flink会自动管理时间戳和水位线。