PubsubIO。关于窗口化的指导

时间:2018-02-06 15:04:07

标签: google-cloud-dataflow apache-beam google-cloud-pubsub

来自docs(文档是1.x,虽然我使用的是2.2):

  

注意:默认情况下,PubsubIO转换创建无界PCollections。使用PubsubIO.Read创建PCollection之后,应该应用窗口策略到该PCollection,然后再应用任何对元素进行分组的变换,例如GroupByKey或Combine。

  1. 因此,如果我不需要使用分组转换,使用PubsubIO.Read时是否需要应用窗口?

  2. 如果我确实使用了分组转换,但没有指定窗口,会发生什么?默认情况下是否从PubsubIO.Read应用了默认窗口?

1 个答案:

答案 0 :(得分:1)

默认的窗口策略是使用所有元素都属于的单个全局窗口。

如果您确定您的管道没有使用分组或聚合,那么您可以使用默认的全局窗口。但是,您可能仍需要trigger条件来指定应从接收器转换写入数据的位置。否则,数据将永远累积在全局窗口中,导致管道出现卡住状态。

Beam文档在此处提供了有关窗口的其他详细信息:https://beam.apache.org/documentation/programming-guide/#windowing