时间流处理是有状态流处理的扩展,时间在计算中起着一定的作用。比如这些场景,当你进行时间序列分析、基于特定时间段(window操作)进行聚合、或者当你进行事件处理时,事件发生的时间很重要的情况等。
Event Time 和 Processing Time
既然是时间流处理,那必然与时间分不开关系,这里就有两个比较重要的时间概念:Event Time 和 Processing Time。
Processing Time:处理时间是指事件在flink系统中被处理(执行相应操作)时机器的系统时间
当流程序按处理时间运行时,所有基于时间的操作(如时间窗口)将使用运行相应操作符的机器的系统时钟。每小时的处理时间窗口将包括在系统时钟指示整小时期间到达特定操作符的所有记录。例如,如果应用程序在上午9:15开始运行,第一个小时处理时间窗口将包括在上午9:15到10:00之间处理的事件,下一个窗口将包括在上午10:00到11:00之间处理的事件,以此类推。
Event Time:事件时间是每个单独事件在其生产设备上发生的时间
这个时间通常在记录进入Flink之前嵌入到记录中,可以从每个记录中提取事件时间戳。在事件时间中,时间的进展取决于数据,而不是任何墙上的时钟。
事件时间程序必须指定如何生成事件时间水印(Event Time Watermarks),这是在事件时间中表示进度的机制。
Event Time 和 Watermarks
支持事件时间的流处理器需要一种方法来度量事件时间的进度。例如,当事件时间超过一小时后,需要通知构建每小时窗口的窗口操作符,以便该操作符可以关闭正在运行
订阅专栏 解锁全文

1719

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



