在 Python 中对单个波束操作进行计时

问题描述 投票:0回答:0

我正在尝试找到一种方法来为单个光束操作计时。 Apache Beam 提供的 metrics 模块有助于定义计数器、分布和仪表,这些可以从自定义

DoFn
PTransform
的内部进行跟踪。然而,我希望也能记录现有
DoFn
的时间。

例如,存在一个标准步骤从文本文件(JSON、CSV 等)读取数据——

beam.io.ReadAllFromText
。但是,我不确定是否有办法添加自定义指标来跟踪此操作(以及已经属于 beam 库的其他操作)?本质上,我希望捕捉到执行此操作所需的总体时间

start = time.time()
pipeline | beam.io.ReadAllFromText(...)
logging.info(f"Time taken {time.time() - start}")

像这样。对于标准操作,这完全可能吗? (请注意,我很熟悉我们不能简单地向这些操作添加像开始和结束计时器这样简单的东西,因为执行这些操作的运行器的分布式特性,例如我主要使用的数据流)。

apache-beam apache-beam-io
© www.soinside.com 2019 - 2024. All rights reserved.