为什么Google Dataflow的总时间超过了各个步骤的总和

时间:2017-07-11 10:03:07

标签: google-app-engine google-cloud-platform google-cloud-dataflow

A simple dataflow job

我真的无法理解为什么数据流作业的总耗用时间远远高于各个步骤所用的时间。

例如,图片中数据流的总耗用时间为2分39秒。虽然在单个步骤中花费的时间仅为10秒。即使我们考虑在设置和破坏阶段花费的时间,也会有149秒的差异,这太多了。

是否有其他方式阅读个别舞台时间或我遗漏了其他东西?

谢谢

1 个答案:

答案 0 :(得分:2)

据我说,2分39秒的时间很好。您正在执行此操作读取文件,然后是pardo,然后将其写入bigquery。

这个时间计算涉及很多因素。

  1. 您需要处理多少数据。即 - 在你的情况下,我不认为你正在处理大量数据。
  2. 你在做什么计算。即你的pardo步骤只有3秒,所以除了少量的数据之外,pardo也没有太多的计算。
  3. 将它写入bigquery - 即在你的情况下它只需要5秒。
  4. 因此,数据流的创建和销毁阶段保持不变。在你的情况下它是149秒。你的工作只需要10秒,这取决于我上面解释的所有三个因素。

    现在假设您必须处理200万条记录并且每条记录转换需要10秒。在这种情况下,单节点数据流加载作业的时间会高得多,即10秒* 200万条记录。

    因此,在这种情况下,149秒并不代表整个作业完成时间,因为所有记录过程0秒* 200万条记录都需要149秒。

    希望这些信息可以帮助您了解时间安排。