flink支持哪些时间语义?

flink的窗口时间属性TimeCharacteristic分为三种:ProcessingTime,IngestionTime,EventTime。

1.事件时间(Event Time):这是实际应用最常见的时间语义。

事件时间是一个event实际发生的时间,它基于事件流中event被打上的时间戳。时间戳一般存储与event 数据中。下图展示了一个event-time 窗口,可以正确的将events放入合适的窗口中,反应了事件实际发生的情况,即使事件的到达存在延迟。

2.处理时间(Processing Time):没有事件时间的情况下,或者对实时性要求超高的情况下。

处理时间是处理流的operator在执行时,所属机器上的本地时间。Processing-time 窗口包含所有在一个时间周期内到达window operator 的events,以本地机器时间衡量。如下图所示,在小明游戏的案例中,在小明的手机断开连接后,processing-time 窗口仍会持续计时,所以不会将小明断网时间内的events计入到当前时间段。

3.摄入时间(Ingestion Time):存在多个 Source Operator 的情况下,每个 Source Operator可以使用自己本地系统时钟指派 Ingestion Time。后续基于时间相关的各种操作,都会使用数据记录中的 Ingestion Time。

了解更多大数据培训相关课程知识欢迎关注小编!

上一篇:大数据_Flink_数据处理_运行时架构7_程序结构和数据流图---Flink工作笔记0022


下一篇:flink keyBy报错