一、简介
实时流处理是有状态流处理的一种扩展,时间在其中起一定的作用。在进行时间序列分析时,在基于特定时间段(通常称为windows)进行聚合时,或者在进行事件处理时(事件发生的时间很重要),都会出现这种情况。
在下面的小节中,我们将重点介绍使用Flink应用程序时应该考虑的一些主题。
二、时间的概念:事件时间和处理时间
当在流媒体程序(例如定义窗口)中提到时间时,可以引用不同的时间概念:
1、Processing time: 是指机器执行相应操作的系统时间。
当流媒体程序在Processing time上运行时,所有基于时间的操作(如时间窗口)将使用运行各自操作符的机器的系统时钟。每小时的处理时间窗口将包括系统时钟指示整个小时的时间之间到达特定操作员的所有记录。例如,如果应用程序在9:15am开始运行,第一个每小时的处理时间窗口将包括在9:15am到10:00am之间处理的事件,下一个窗口将包括在10:00am到11:00am之间处理的事件,以此类推。
Processing time是时间的最简单概念,不需要在流和机器之间进行协调。它提供了最好的性能和最低的延迟。然而,在分布式和异步环境Processing time不提供决定论,因为它是容易的速度记录到系统中(例如从消息队列),运营商之间流动的速度记录在系统内部,并中断(预定,或以其他方式)。
2、Event time:事件时间是每个单独事件在其产生设

本文深入解析了实时流处理中事件时间和处理时间的区别,介绍了Flink中如何利用水印机制实现事件时间操作,以及窗口在处理无限流中的应用,涵盖了并行流中的水印传递和延迟处理。
最低0.47元/天 解锁文章
552

被折叠的 条评论
为什么被折叠?



