一个流式 Dataflow 作业(Streaming Engine,水平自动扩缩,max_workers=1000)从 GCS 读取 Pub/Sub 通知,并为每行 CSV 发出一个元素。该作业仅使用 10 个 worker,并且自动扩缩器没有增加更多 worker。您如何提高并行度并让自动扩缩器进行扩缩?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 更改流水线代码以添加 Reshuffle 步骤来打破融合。.
为什么这是答案
当 Dataflow 作业的并行度受限时,即使有足够的 maxworkers,自动扩缩器也可能不会增加 worker 数量。在这种情况下,问题通常在于数据处理中的“融合”操作,它将多个转换合并到一个阶段,限制了并行执行。添加 Reshuffle 步骤可以强制 Dataflow 将数据重新分区,从而打破融合,允许更多的并行处理。这会向 Dataflow 发出信号,表明需要更多的计算资源来处理重新分区的数据,从而促使自动扩缩器增加 worker 数量。 其他选项: 启用垂直自动扩缩(垂直扩容)会增加单个 worker 的计算能力,但如果瓶颈在于并行度而非单个 worker 的处理能力,则无法解决问题。 增加作业的最大 worker 数量(maxworkers)在此场景中无效,因为自动扩缩器根本没有达到当前限制,问题在于它没有被触发去扩缩。 使用 Dataflow Prime 和 Right Fitting 旨在优化资源分配,但如果核心问题是管道的并行度受融合限制,它们也无法直接解决。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡