Flink中时间概念

Posted by kevinkang on September 19, 2023

不同的时间概念


img

  • eventTime-事件时间:
    • 与事件发生的具体时间相关
  • processingTime-处理时间:
    • 与具体发生的事件无关,仅关注何时处理


img

  • 特点:
    • 基于机器本地时间进行处理
    • 处理结果不固定,可能产生不一致结果
    • 统计结果不能复现


img

  • 特点:
    • 基于事件发生时间进行处理
    • 统计结果可复现,有保障
    • 需要一些额外配置,如对于事件时间的抽取
    • 在乱序的情况下,如何达到数据一致性保障

不同时间类型


img

  • 共分为四种时间类型
    • 事件事件:eventTime,在数据中有记录,后面操作进行提取
    • 处理时间:window processingTime

设定 Stream 中 TimeCharacteristic

StreamExecutionEnvironment env =
        StreamExecutionEnvironment.getExecutionEnvironment();
        env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
// alternatively: 
// env.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime); 
// env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime);