Flink中的时间与窗口

数据的相关时间包括:

  • event-time:事件产生的时间,也可以理解成业务时间。
  • ingestion-time:进入Flink的时间。如果没有事件时间可以用这个时间取代。
  • processing-time:执行Operator算子的处理时间,本地系统时间,与机器无关。Flink默认使用处理时间

Flink支持使用窗口Window将无界流划分为有界流来计算,窗口分为:时间窗口(Time Window)和计数窗口(Count Window),例如时间段,数据条数。时间窗口中有:

  • 滚动窗口:Tumbling Window,固定的时间间隔(窗口长度),中间不间断的划分。时间对齐(每个用户的时间划分都是一样的),数据不重叠。
  • 滑动窗口:Sliding Window,由固定的窗口长度和滑动间隔组成。窗口长度固定,数据可以有重叠。滚动窗口是滑动窗口的特例(步长正好是窗口长度)。
  • 会话窗口:Session Window,由一系列会话事件组成,分割点是会话超过一定的时间间隔,超过后再开始就开启下一个会话窗口。时间无对齐。

计数窗口也包括上面的滚动和滑动窗口,没有会话窗口。

窗口切分完就需要用窗口函数进一步计算。窗口函数主要分为:

  • 增量聚合(Incremental Aggregation Function):每条数据到来就进行计算,保持一个简单状态。有ReduceFunction,AggregateFunction等,min,minBy,max,sum等都属于。
  • 全窗口函数(Full Window Function):把窗口所有数据收集起来,计算时遍历所有数据。ProcessFunction,ProcessWindowFunction。全窗口拿到的数据更多,上下文和窗口对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值