以下是一些Apache Beam Windowing问题:

  • 我有一个Beam Pipeline从Pub / Sub读取数据,并通过一组ParDo 's ,during the processing we do groupByKey and then do a couple of ParDo'处理事件,再一次处理GroupByKey / Combine . 我们设置了一个大小为5分钟的窗口,触发器位于下方 . AfterProcessingTime.pastFirstElementInPane() . plusDelayOf(Duration.standardMinutes(5L)

我看到上面的策略在我们的管道中应用了每个combine / groupBY但是我的管道卡在第二个groupByKey上 .

如果我在每个Combine / GroupByKey上方应用窗口,那么我的管道新的停止和事件会向下游流动 . 这是基于处理时间的触发器中的预期行为吗?如果不是我们错过了什么?

  • 如果我们使用以下策略在我的管道乞讨时设置一次widowing,则使用以下策略Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane() . plusDelayOf(2分钟)) . orFinally(AfterWatermark.pastEndOfWindow())

这将继续在我的所有combine / GroubBy上触发触发器,其中每个groupBy在上面的组合步骤发出事件后启动一个窗口吗?我们觉得只有orFinally会在我们所有的联合收割机中被触发 .