说明
在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
作用
容忍 迟到数据、处理 乱序数据

