Google cloud dataflow Apache Beam/数据流重组
org.apache.beam.sdk.transforms.Reshuffle的目的是什么?在文件中,目的定义为: 一种p转换,返回与其输入相等的p收集,但 在操作上提供了GroupByKey的一些副作用 特别是防止周围变换的融合, 按id设置检查点和重复数据消除Google cloud dataflow Apache Beam/数据流重组,google-cloud-dataflow,apache-beam,Google Cloud Dataflow,Apache Beam,org.apache.beam.sdk.transforms.Reshuffle的目的是什么?在文件中,目的定义为: 一种p转换,返回与其输入相等的p收集,但 在操作上提供了GroupByKey的一些副作用 特别是防止周围变换的融合, 按id设置检查点和重复数据消除 防止周围变换融合的好处是什么?我认为fusion是一种防止不必要步骤的优化。实际的用例会有所帮助 在一些情况下,您可能需要重新整理数据。以下不是一个详尽的列表,但应该让您了解为什么可能会进行改组: 当其中一个ParDo变换具有非常高
防止周围变换融合的好处是什么?我认为fusion是一种防止不必要步骤的优化。实际的用例会有所帮助 在一些情况下,您可能需要重新整理数据。以下不是一个详尽的列表,但应该让您了解为什么可能会进行改组: 当其中一个ParDo变换具有非常高的扇出时 这意味着在你的ParDo之后平行度会增加。如果不在此处中断融合,管道将无法将数据拆分为多台机器来处理 考虑DoFn的极端情况,它为每个输入元素生成一百万个输出元素。考虑这个ParDo在其输入中接收10个元素。如果你不打破这个高扇出ParDo和它的下游变换之间的融合,它将只能在10台机器上运行,尽管你将拥有数百万个元素
- 诊断此问题的一个好方法是查看输入PCollection中的元素数与输出PCollection中的元素数。如果后者显著大于第一个,那么您可能需要考虑增加一个改组。
- 诊断此问题的一个好方法是查看管道中有多少工人正在执行工作。如果管道运行缓慢,并且只有一个工人在处理数据,那么您可以从改组中获益