首页 > 解决方案 > Apache Beam 批处理早期输出?

问题描述

无论如何在批处理模式下运行时触发窗口的早期输​​出?我已经使用 Dataflow 运行器尝试了许多触发器以获得早期窗口输出,但它们始终保持到处理结束。

标签: google-cloud-dataflowapache-beamspotify-scio

解决方案


与流式处理不同,Dataflow 批处理始终按拓扑顺序(包括 GroupByKey)执行整个(融合)阶段以完成。因此,一旦它在 GBK 之后开始处理键,它总是拥有该键的所有值,并使用键值对调用下游操作一次。Beam 中的触发器是一个窗口的数据可以多快发布的下限,但不强制提前发布(因此命名为After Count、After Watermark 等),因此批处理模型在技术上满足与一次且只有一次“开火”。

在批处理模式下,不可能在 Dataflow(或我知道的任何其他运行器)上获得早期窗口输出。


推荐阅读