首页 > 解决方案 > 在 python 中运行管道期间访问 Apache Beam 指标值?

问题描述

我正在使用 Apache Beam Python SDK 的直接运行程序来执行类似于字数统计示例的简单管道。由于我正在处理一个大文件,我想在执行期间显示指标。我知道如何报告指标,但在运行期间我找不到任何访问指标的方法。

我在 中找到了该metrics()函数PipelineResult,但似乎我只PipelineResult从该函数中获取了一个对象Pipeline.run(),这是一个阻塞调用。在 Java SDK 中我找到了一个MetricsSink,可以在 上配置PipelineOptions,但我没有在 Python SDK 中找到等效项。

如何在管道执行期间访问实时指标?

标签: pythonapache-beam

解决方案


直接运行器通常用于测试、开发和小型作业,并且Pipeline.run()为了简单起见被设置为阻塞。在其他运行Pipeline.run()器上是异步的,结果可用于在执行期间监视管道进度。

您可以尝试运行像 Flink 这样的 OSS 运行器的本地版本来获得这种行为。


推荐阅读