【问题标题】:Dataflow writing to datastore poor performance?数据流写入数据存储性能不佳?
【发布时间】:2022-11-02 01:30:39
【问题描述】:
最近我将我的数据流 apache 光束管道更新到了最新版本,我的管道写入了大量数据。 apache Beam 版本从 2.27 更新到 2.41 之前的管道大约需要 8 分钟才能完成执行,而更新之后需要 30 多分钟才能完成执行。
更新前
更新后
在更新管道版本之前未显示 Enforce ramp-up through throttling 步骤。
【问题讨论】:
标签:
google-cloud-datastore
google-cloud-dataflow
apache-beam
【解决方案1】:
我与团队核实过,一般来说这是预期的行为。 IO 的设置具有标准设置,以遵循best practices 进行加速,并且不使用它是可能的,但不鼓励。
DatastoreV1 docs可提供进一步指导:
默认情况下,写入和删除操作将逐渐增加,以保护 Cloud Datastore 免受潜在的过载。此速率限制遵循基于预期工作人员数量的启发式方法。要在此初始阶段优化吞吐量,您可以通过调用 withHintNumWorkers 向相关 PTransform 提供提示,例如 DatastoreIO.v1().deleteKey().withHintNumWorkers(numWorkers)。虽然不推荐,但您也可以通过 .withRampupThrottlingDisabled() 将其关闭。