flink1.12.x Time分类-Event Time事件时间、Ingestion Time摄入时间、Processing Time处理时间

说明

在flink的流式处理中,会涉及到时间的不同概念,如下图:

案例

(重要)事件时间(Event Time)

数据在数据源产生的时间,一般由事件中的时间戳描述

类比:案发时间

如:

  • 点击 网站上的某个链接的 时间,每一条日志都会记录自己的生成时间

  • 抖音中,每次看视频的时间

  • 游戏中,每次玩游戏的时间

  • 下单时间。下单后15分钟内,没有支付,就取消该订单

如果以 EventTime 为基准来定义时间窗口那将形成EventTimeWindow,要求消息本身就应该携带 EventTime

Flink在1.12版本后 默认使用 Event Time

摄取时间(Ingestion Time)

数据进入Flink的时间,记录被Source节点观察到的系统时间。

类比:110接警时间

如:flink source消费到kafka中的数据

如果以 IngesingtTime 为基准来定义时间窗口那将形成IngestingTimeWindow,以 source的 systemTime 为准

(重要)处理时间(Process Time)

数据进入Flink被处理的系统时间,算子(Operator)处理数据的系统时间

类比:立案时间

如果以 ProcessingTime 基准来定义时间窗口那将形成ProcessingTimeWindow ,以 operator 的 systemTime 为准

无法使用 EventTime 时,才会使用 ProcessingTime

作用

容忍 迟到数据、处理 乱序数据


原文出处:/show_1IX21KUw2jMI.html