Apache Beam Pipeline(数据流) - 解释无界数据的执行时间

时间:2017-10-25 16:35:54

标签: google-cloud-dataflow apache-beam

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

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

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

另外,这与自动缩放有关吗?对于例如如果执行时间超过一定的阈值,那么更多的工人会被剥离吗?或者自动缩放是否依赖于输入处的数据量?

1 个答案:

答案 0 :(得分:2)

在批处理和流式处理中,这是衡量这些步骤在每个工作线程上的活动时间的度量。每个工作者计算机的线程数在Batch和Streaming之间有所不同,并且当您注意到更多的worker时意味着更多的工作线程。

没有任何实际意义 - 提供这些测量是为了解工作线程花费大部分时间做的事情。如果总管道似乎表现合理,则无需执行任何操作。如果您认为管道比您预期的要慢,或者其中一个步骤似乎比您预期的要长,那么这些步骤可以作为理解性能的起点。

在某种意义上,这些类似于在各种功能中花费的时间简档如何用于改善正常程序的性能。对一个函数的影响不会比另一个函数长,但它可能是有用的信息。