Flink1.7学习笔记(一)时间

本文介绍了Flink中的时间处理概念,包括处理时间、事件发生时间和Flink摄入处理时间。重点讲解了水印(waterMarking)的作用,它是判断数据延迟并为窗口提供弹性的机制。在并行流中,每个源函数子任务独立生成水印,节点在处理数据并触发所有输出后才会将水印发送到下游。
摘要由CSDN通过智能技术生成

首先要理解三个关于时间的概念
一、处理时间:指执行相应操作的机器时间
处理时间是最简单的时间概念,不需要流与机器之间的协调。即我机器收到数据后就将其放入时间窗口进行处理,类似将其转化成一个以时间为界的批处理任务之中。也就是把流抽象成批处理,只是批处理的数据大小由固定时间内收到的数据的数量来决定。
二、事件发生时间:指事件在其设备上发生的时间
事件时间程序必须指定如何生成waterMarking,这是机器指示时间进度的工具,具体会在下文详细描述waterMarking。
即可以按照数据发生的真正时间来处理数据。
三、FLink摄入处理时间:Flink摄入处理时间是介于发生时间与处理时间之中的一种时间(也可以理解为事件到达时间)
与处理时间相比,开销要稍微大一点,因为它具有稳定的时间戳,相比于事件时间,flink时间不能处理所有的乱序时间时间,同时好处就是也不需要去制定waterMarking了。它内部会有自动水印生成功能。
时间顺序图

关于水印(waterMarking):大致上可以理解为一个标记,判断数据离我们的程序到底发生了多久的一个标记。举一个例子,我们有两个时间窗口分别是0-5s 和 5-10s的两个窗口,在第一秒产生了一条数据向我们的程序流过来,按道理来讲它因该流入0-5s的那个时间窗口之中,但中途可能由于网络延迟等原因它滞后了,到了第六秒才到达,此时它就会流入5-10s的时间窗口之中,那么我们所处理的数据就会不正确。这时我们设计一个数据结构,把数据流过来时,把时间记录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值