流式计算中的Window机制

Window机制在流计算中用于处理无限数据流,将数据分为有限的批次进行处理。滚动窗口不重叠,固定长度;滑动窗口以固定步长滑动,可能有重叠;会话窗口基于sessiongap分组,长度不固定。迟到数据处理包括丢弃、设置允许迟到时间和侧输出流。增量计算实时处理,全量计算等待窗口触发。EMIT触发允许提前输出窗口结果,提高实时性。
摘要由CSDN通过智能技术生成

流式计算中的Window机制

Window 是什么

在流计算中,数据流是持续不断的,因此不可能等全部数据都到了再开始处理。Window的作用就是将无限的Streaming拆分成大小有限的Batch,我们可以对每个Window里的数据进行应用和计算。

典型Window的基本功能

本文介绍 滚动窗口 、滑动窗口 和 会话窗口

Tumble Window(滚动窗口)

滚动窗口特点:

  • 窗口不重叠,每个数据只能属于一个窗口

  • 窗口长度固定

  • 当时间大于等于Window end时,一次性触发对应的Window的输出

Sliding Window(滑动窗口)

滚动窗口特点:

  • 滑动窗口以一个步长不断向前滑动,窗口的长度固定。

  • 窗口可能重叠

  • 当窗口长度大于滑动窗口的步长,数据就可能属于多个窗口

  • 当窗口长度小于滑动窗口的步长,数据就可能不属于任何窗口

  • 当时间大于等于Window end时,一次性触发对应的Window的输出

Session Window(会话窗口)
  • session gap 指 各个session之间的间隔,一般会设置一个会话的最大gap,比如1分钟,当session gap大于1分钟,数据就会被分到不同的session中。

  • 窗口长度不等

  • 当时间大于等于Window end时,一次性触发对应的Window的输出

迟到数据的处理
  • 迟到的定义:watermark驱动某个窗口触发输出之后,这个窗口如果后面又来了数据,那这种情况就属于是迟到的数据了。

  • 处理办法:

  1. 直接丢弃(默认)

  1. 设置一个允许迟到时间,这种情况下,窗口正常计算时间结束后不会马上清理数据,而是多保留一个“迟到时间”,如果这段时间内有数据到达,则继续计算

  1. 将迟到数据转变成一个单独的流,再由用户自己决定如何处理(侧输出流)

增量计算 和 全量计算
  • 增量计算:每条数据到来后,直接参与计算,但是暂不输出结果

  • 全量计算:每条数据到来后,先放到一个buffer中,这个buffer会存储到状态里,直到窗口触发输出的时候,才把所有数据拿出来统一进行计算

EMIT触发
  • 背景:正常的窗口都是在窗口结束时才会进行输出,比如窗口时间为一天,只有在一天结束时才会输出结果,这时便失去了实时计算的意义。

  • 作用:EMIT触发是一种可以提前把窗口内容输出的机制,比如窗口时间为一天的窗口,设置其5s输出一次,使下游更快的获得到窗口计算的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值