Google cloud dataflow 流式数据流如何决定如何/何时将元素传播到下游转换?

Google cloud dataflow 流式数据流如何决定如何/何时将元素传播到下游转换?,google-cloud-dataflow,apache-beam,google-cloud-pubsub,Google Cloud Dataflow,Apache Beam,Google Cloud Pubsub,我有一个从pubsub订阅读取的流式数据流,没有应用任何窗口。管道的第一步是读取pubsub订阅。在将消息发送到下一步并继续在pubsub读取更多传入消息之前,数据流如何决定在第一步中应累积多少消息数?如果您自己定义了一个窗口和触发器策略,则默认(全局)窗口是用默认触发器(丢弃延迟消息)定义的。你可以 警告:Beam的默认窗口行为是将PCollection的所有元素指定给单个全局窗口,并丢弃延迟数据,即使对于无界PCollection也是如此。在无界PCollection上使用分组转换(如Gro

我有一个从pubsub订阅读取的流式数据流,没有应用任何窗口。管道的第一步是读取pubsub订阅。在将消息发送到下一步并继续在pubsub读取更多传入消息之前,数据流如何决定在第一步中应累积多少消息数?

如果您自己定义了一个窗口和触发器策略,则默认(全局)窗口是用默认触发器(丢弃延迟消息)定义的。你可以

警告:Beam的默认窗口行为是将PCollection的所有元素指定给单个全局窗口,并丢弃延迟数据,即使对于无界PCollection也是如此。在无界PCollection上使用分组转换(如GroupByKey)之前,必须至少执行以下操作之一:

  • 设置非全局窗口功能。请参阅设置PCollection的窗口功能
  • 设置非默认触发器。这允许全局窗口在其他条件下发出结果,因为默认窗口行为(等待所有数据到达)永远不会发生
如果未为无界PCollection设置非全局窗口函数或非默认触发器,并随后使用分组转换(如GroupByKey或Combine),则管道将在构造时生成错误,作业将失败


如果您自己定义了一个窗口和触发器策略,则默认(全局)窗口是使用默认触发器(丢弃延迟消息)定义的。你可以

警告:Beam的默认窗口行为是将PCollection的所有元素指定给单个全局窗口,并丢弃延迟数据,即使对于无界PCollection也是如此。在无界PCollection上使用分组转换(如GroupByKey)之前,必须至少执行以下操作之一:

  • 设置非全局窗口功能。请参阅设置PCollection的窗口功能
  • 设置非默认触发器。这允许全局窗口在其他条件下发出结果,因为默认窗口行为(等待所有数据到达)永远不会发生
如果未为无界PCollection设置非全局窗口函数或非默认触发器,并随后使用分组转换(如GroupByKey或Combine),则管道将在构造时生成错误,作业将失败


在没有任何分组/组合转换的情况下,则其仅基于束完成

“。。。成捆处理。将集合划分为束是任意的,由运行程序选择。这允许运行程序在每个元素后都保持结果和出现故障时必须重试所有操作之间选择适当的中间地带。例如,流式运行程序可能更喜欢处理和提交小的捆绑包,而批处理运行程序可能更喜欢处理较大的捆绑包。”


您可以阅读有关详细信息的更多信息。

在没有任何分组/组合转换的情况下,它只是基于束完成的

“。。。成捆处理。将集合划分为束是任意的,由运行程序选择。这允许运行程序在每个元素后都保持结果和出现故障时必须重试所有操作之间选择适当的中间地带。例如,流式运行程序可能更喜欢处理和提交小的捆绑包,而批处理运行程序可能更喜欢处理较大的捆绑包。”


您可以阅读更多详细信息。

在本例中,捆绑实际上是与聚合完全不同的概念。在本例中,捆绑实际上是与聚合完全不同的概念。