Streaming 滑动窗口与翻滚窗口

Streaming 滑动窗口与翻滚窗口,streaming,Streaming,我正在读一篇关于数据流管理的长篇文章,我对滑动窗口和翻滚窗口之间的区别感到有点困惑。到目前为止,我已经了解到翻转窗口可以是基于时间的,并且有固定的(开始、结束)点,当窗口过期时会“翻转”。例如,基于时间的窗口可以是1分钟长。因此,每分钟窗口都会翻滚,以处理数据集的聚合 让我困惑的是滑动窗。是基于计数的滑动窗口,因此当x个元组进入窗口时,窗口会翻滚。或者,进入该窗口的x最近的元组将是该窗口的一部分,而较旧的元组将从该窗口中逐出。也就是说,当新元组到达时,窗口会不断更新 翻转窗口(TW) 窗口中的所

我正在读一篇关于数据流管理的长篇文章,我对滑动窗口和翻滚窗口之间的区别感到有点困惑。到目前为止,我已经了解到翻转窗口可以是基于时间的,并且有固定的(开始、结束)点,当窗口过期时会“翻转”。例如,基于时间的窗口可以是1分钟长。因此,每分钟窗口都会翻滚,以处理数据集的聚合

让我困惑的是滑动窗。是基于计数的滑动窗口,因此当x个元组进入窗口时,窗口会翻滚。或者,进入该窗口的x最近的元组将是该窗口的一部分,而较旧的元组将从该窗口中逐出。也就是说,当新元组到达时,窗口会不断更新

翻转窗口(TW) 窗口中的所有元组同时过期

滑动窗口(SW) 只有部分元组在给定时间过期

示例 如果您输入了一个包含以下整数的窗口(表示整数(输入后的秒数)),假设TW是在60秒前创建的,两个窗口的时间限制都是60秒

1 (0s), 2 (10s), 4 (24s), 8 (17s), 16 (40s)
假设20秒过去了,然后下列整数进入窗口

7, 3, 6
现在,前一个TW将已过期,并且只包含上述值。而SW将包含以下值

7, 3, 6, 1, 2, 4, 8
  • 翻滚以非重叠间隔重复
  • 跳跃与翻滚相似,但跳跃通常有重叠的椎间盘
  • 时间滑动定期触发
  • 逐出滑动触发计数 下图显示了不同类型的DataStreamM管理S系统(DSMS)窗口滚动、跳跃、定时策略滑动和逐出策略(计数)滑动。我使用上面的例子来创建图像(进行假设)


    让我们认为窗口功能是一种传统操作,它处理基于时间的输入数据,应用给定的聚合函数并输出结果

    翻转窗口(TW)操作和滑动窗口(SW)操作之间的关键区别在于所考虑的数据点的交叉集,前者为空,后者可能为非空

    来自Microsoft Azure Stream Analytics的一个非常好的例子,通过插图说明了这一点

    • TW,考虑到滴答声为10秒,该窗口操作在该时间范围内从聚合函数中输出每个滴答声的结果
    • SW,考虑到X的刻度,每当事件发生时,该窗口操作都会在Ys时间范围内从聚合函数输出每个刻度的结果,例如,
      X=1
      Y=10
      然后,每隔一秒钟,窗口功能就会回顾十秒钟,系统地丢弃最旧的数据点
    让我们看一下以下时间序列的具体示例:

    t0-> 5 7 4 3 1 1 3 t10-> 4 5 8 1 2 3 3 3 5 7 7 t20-> t30-> 3 3 4 t40->
    
    SUM
    视为聚合函数和SW的平庸策略,SW是希望窗口(HW)

    • t0
      SW=TW=0
    • at
      t10
      SW=TW=24
    • t11
      没有TW,但是
      SW=23
      并且连续窗口之间的交点是
      7 4 3 1 3
    • t11
      没有TW,但是
      SW=21
      并且连续窗口之间的交点是
      4314
    • at
      t20
      TW=SW=48
    • t21
      没有TW,但是
      SW=44
      并且连续窗口之间的交叉点是
      5 8 1 2 3 3 3 5 7
    • at
      t30
      TW=SW=0
    • t31
      没有TW,但是
      SW=3
      并且连续窗口之间的交叉点是空的,因为在
      [t20,t30]
      中没有发生任何事件

    另一个由SoftwareMill首席技术官亚当·沃斯基(Adam Warski)制作,它举例说明了Spark、Flink、Akka和Kafka等现代流媒体技术的使用。

    感谢您创建视觉演示!我喜欢。