分享

彻底明白Flink系统学习11:【Flink1.7】事件时间、处理时间、提取时间有什么区别

问题导读

1.事件时间、处理时间、提取时间的顺序是什么?
2.事件时间为何需要水印?
3.处理时间是否提取的当前系统的时间?
4.数据到达Flink的时间是什么时间?

上一篇:
彻底明白Flink系统学习10:【Flink1.7】窗口生命周期、Keyed和非Keyed及分配器诠释
http://www.aboutyun.com/forum.php?mod=viewthread&tid=26483


我们知道Flink在流处理程序支持不同的时间概念。分别为Event Time/Processing Time/Ingestion Time,也就是事件时间、处理时间、提取时间,那么这三个时间有什么区别和联系。我们来看下图
1.png

上图是一个信号站,分别列出了事件时间、处理时间、提取时间的先后顺序。当然上面图示需要你对Flink有一个基本的了解。我们先白话解释,然后在官方解释。
Event Time:也就是事件发生的时间,事件的发生时间。我们有些同学可能会模糊,这里举个例子,我们产生日志的时间,这个应该清楚的,日志的时间戳就是发生时间。
Processing Time也就是处理时间,我们看到了这个已经进入Flink程序,也就是我们读取数据源时间,也就是日志到达Flink的时间,但是这个时间是本地机器的时间。
Ingestion Time也就是提取时间,我们看到它比处理时间还晚一些,这个时候数据已经发送给窗口,也就是发送给窗口的时间,也就是程序处理计算的时间

如果你缺乏Flink知识,白话介绍完,下面我们比较详细的介绍


处理时间:处理时间是指执行相应操作的机器的系统时间。

当流程序在处理时间运行时,所有基于时间的操作(如时间窗口)将使用相应operator的机器系统时钟。每小时处理时间窗口将包括在系统时钟指示整个小时之间到达特定operator的所有记录。例如,如果应用程序在上午9:15开始运行,则第一个每小时处理时间窗口将包括在上午9:15到上午10:00之间处理的事件,下一个窗口将包括在上午10:00到11:00之间处理的事件。

处理时间是最简单的时间概念,不需要流和机器之间的协调。它提供最佳性能和最低延迟。但是,在分布式和异步环境中,处理时间不提供确定性,因为它容易受到记录到达系统的速度(例如从消息队列)到记录在系统内的operator之间流动的速度的影响,和停电(调度或其他)。


事件时间:事件时间是每个事件在其生产设备上发生的时间。此时间通常在进入Flink之前嵌入记录中,并且可以从每个记录中提取该事件​​时间戳。在事件时间,时间的进展取决于数据,而不是任何时钟。事件时间程序必须指定如何生成事件时间水位线,这是表示事件时间进度的机制。关于watermark可参考Flink Watermarks【水位线】详解

在一个理想的情况下,事件时间处理将产生完全一致和确定的结果,无论事件何时到达或其排序。但是,除非事件已知按顺序到达(按时间戳),否则事件时间处理会在等待无序事件时产生一些延迟。由于只能等待一段有限的时间,因此限制了确定性事件时间应用程序的可能性。

假设所有数据都已到达,事件时间操作将按预期运行,即使在处理无序或延迟事件或重新处理历史数据时也会产生正确且一致的结果。例如,每小时事件时间窗口将包含带有落入该小时的事件时间戳的所有记录,无论它们到达的顺序如何,或者何时处理它们。

注意,有时当事件时间程序实时处理实时数据时,它们将使用一些处理时间操作,以确保它们及时进行。


提取时间:提取时间是事件进入Flink的时间。在源operator处,每个记录将源的当前时间作为时间戳,并且基于时间的操作(如时间窗口)引用该时间戳。

提取时间在概念上位于事件时间和处理时间之间。与处理时间相比,它稍早一些,但可以提供更可预测的结果。因为提取时间使用稳定的时间戳(在源处分配一次),所以对记录的不同窗口操作将引用相同的时间戳,而在处理时间中,每个窗口operate可以将记录分配给不同的窗口(基于本地系统时钟和任何运输延误)。

与事件时间相比,提取时间程序无法处理任何无序事件或后期数据,但程序不必指定如何生成水位线。

在内部,提取时间与事件时间非常相似,但具有自动时间戳分配和自动水印生成功能。


最新经典文章,欢迎关注公众号


已有(3)人评论

跳转到指定楼层
huangrong 发表于 2019-5-10 12:29:34
有点绕,看完就记得白话对于这几个时间的描述,对于watermarks的理解是用来限制晚于某个事件处理时间点的数据
回复

使用道具 举报

feilong 发表于 2020-5-27 15:52:38
文章开始部分 Processing Time 和 Ingestion Time 感觉写反了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /5 下一条