Apache Beam 管道(数据流)- 解释无限数据的执行时间

Apache Beam Pipeline (Dataflow) - Interpreting Execution Time for Unbounded Data

在 Beam 管道执行的数据流监控界面中,每个转换框中都指定了一个持续时间(参见 https://cloud.google.com/dataflow/pipelines/dataflow-monitoring-intf)。

对于有界数据,我知道这是完成转换所需的估计时间。但是,对于我的流媒体案例中的无限数据,我该如何解释这个数字?

我的某些转换的持续时间明显高于其他转换,这意味着转换需要更多时间。但是关于这种不均匀分布如何影响我的执行的其他含义是什么,特别是如果我有一个窗口函数正在进行?

此外,这与自动缩放有关吗?例如如果执行时间超过特定阈值,是否会有更多工作人员加速运转?还是自动缩放取决于输入的数据量?

在 Batch 和 Streaming 中,这是衡量这些步骤在每个工作线程上花费了多长时间的度量。每台工作机器的线程数在 Batch 和 Streaming 之间有所不同,正如您所注意到的,更多的工作人员意味着更多的工作线程。

没有任何实际意义 -- 提供这些度量是为了了解工作线程大部分时间都在做什么。如果整个管道似乎运行正常,则您无需执行任何操作。如果您认为管道比您预期的要慢,或者其中一个步骤似乎比您预期的要花更长的时间,这些可以作为了解性能的起点。

在某种意义上,这些类似于在各种功能上花费的时间配置文件如何有助于提高普通程序的性能。一个函数比另一个函数花费更长的时间没有任何影响,但它可能是有用的信息。