小白学习Flink系列--第三篇(概念)之Time

Time的重要性

Flink API总体上划分为3个层次,都一层都需要依赖时间属性,Time是流处理系统的基石之一,不仅在Flink ,在Spark也是如此

小白学习Flink系列--第三篇(概念)之Time

Time分类

  • Event Time
    • 数据世界的时间,也就是事件创建的事件。根据每一条处理记录携带的时间戳来判定
  • Processing Time
    • 是模拟真实世界的时间,简而言之,可以理解为本地系统时间,也是Flink默认的时间属性,通过直接调用本地机器时间获取
  • Ingestion Time
    • 数据进入Flink的时间

小白学习Flink系列--第三篇(概念)之Time

如何选择

Flink常用的是Event Time和Processing Time,本文以这两个做分析

Processing Time:处理起来更为简单,所得到的处理结果是不确定的

Event Time:处理起来更麻烦一些,但是Flink内部对Event Time做了一系列的保障,对于数据进行反复计算,比如说经常遇到的任务失败恢复,需要重新计算,得到的结果是相对确定的

​ 先说结论,对于大部分情况来说,Event Time肯定用的最多,Processing Time用处极少,但也不是完全没有,很多博主直接说到用Event Time就完事了,这是不准确的,具体的判断条件应该是以自己需要的结果为导向,上文说到 Event Time重放得到的是一个相对确定的结果,所以如果数据重放(任务失败恢复)需要结果确定性,果断是Event Time,如果接受结果不相同,则可选择Processing Tme,后者的常用用途就是,计算时间端类的数据量,也就是系统吞吐。

福利

看书看不懂怎么办?学习视频安排!

没有实践项目只会Demo怎么办?实践项目安排!

面试好慌怎么办?面经大全安排!

扫描下方关注,点击联系我,添加vx即可获取Flink大礼包!!

悄悄说一下,有找不到的学习资源也可以私信答主,毕竟我是行走的资源库

小白学习Flink系列--第三篇(概念)之Time