10、流式处理中的窗口策略详解

流式处理中的窗口策略详解

1. 不同观察顺序下的事件时间窗口

在流式处理中,我们会遇到不同的观察顺序。有一种观察顺序是我们常见的,标记为白色;另一种则是所有值在处理时间轴上发生偏移,标记为紫色。可以想象,紫色示例就像是如果风向从东方吹来而非西方时现实可能呈现的另一种情况,即底层的复杂分布式系统以稍有不同的顺序运行。

为了建立基准,我们先比较在事件时间下使用启发式水印对这两种观察顺序进行固定窗口划分的情况。通过复用相关代码,我们得到了相应结果。尽管由于处理时间中观察顺序的不同,输出的整体形状有所差异,但四个窗口的最终结果保持一致,分别为 14、18、3 和 12。

2. 基于触发器的处理时间窗口

接下来,我们对比两种处理时间窗口方法,首先是触发器方法。要使处理时间“窗口化”以这种方式工作,有三个方面需要考虑:
- 窗口划分 :使用全局事件时间窗口,因为本质上是用事件时间窗格来模拟处理时间窗口。
- 触发机制 :在处理时间域中根据所需的处理时间窗口大小进行定期触发。
- 累积模式 :采用丢弃模式,使各个窗格相互独立,每个窗格就像一个独立的处理时间“窗口”。

对应的代码如下:

PCollection<KV<Team, Integer>> totals = input
  .apply(Window.triggering(Repeatedly(AlignedDelay(ONE_MINUTE)))
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值