一、概述
上篇文章介绍了Window窗口机制的相关知识,这里我们介绍下Flink的另外一个核心概念“Event Time机制”,本篇文章只介绍相关概念不讲实战,实战会结合Window窗口机制一起讲解。
二、Flink中的三种时间机制
Flink在流处理程序中支持三种时间的概念,分别是EventTime、ProcessingTime、IngestionTime,Flink流式处理中,绝大部分的业务都会使用EventTime,一般只在EventTime无法使用时,考虑其他时间属性下面分别介绍下。
1.EventTime 事件时间
EventTime是事件发生的时间,在进行Flink流处理程序之前,这个时间就已经能包含在了事件中,并且可以从每个记录中提取事件时间戳。
在EventTime中,时间的进展取决于数据,而不是任何墙上的时钟。EventTime程序必须指定如何生成事件EventTime Watermarks,这是EventTime进展的信号机制。这种Watermarks机制将在下面的小节中进行描述。
假设所有数据都已到达,事件时间操作将按照预期的方式运行,即使在处理无序或延迟的事件或重新处理历史数据时,也会产生正确和一致的