Google cloud dataflow 在google数据流管道的末尾,是否有更简单的方法将聚合器刷新到GCS

Google cloud dataflow 在google数据流管道的末尾,是否有更简单的方法将聚合器刷新到GCS,google-cloud-dataflow,Google Cloud Dataflow,我正在使用聚合器(Aggregator)来记录数据流作业的一些运行时统计信息,并希望在管道完成(或每个转换器完成)时将它们刷新到GCS或BQ 目前,除了使用聚合器之外,我还在使用tupleTag创建side输出,同时刷新side输出PCollection。 但是,我想知道是否有其他方便的方法可以直接刷新聚合器本身?您使用side output PCollection的方法应该产生与使用聚合器相同的语义结果。(例如,当捆绑包失败且必须重试时,聚合器和端输出都不会包含重复值。)主要区别在于,聚合器的

我正在使用聚合器(Aggregator)来记录数据流作业的一些运行时统计信息,并希望在管道完成(或每个转换器完成)时将它们刷新到GCS或BQ

目前,除了使用聚合器之外,我还在使用tupleTag创建side输出,同时刷新side输出PCollection。
但是,我想知道是否有其他方便的方法可以直接刷新聚合器本身?

您使用side output PCollection的方法应该产生与使用聚合器相同的语义结果。(例如,当捆绑包失败且必须重试时,聚合器和端输出都不会包含重复值。)主要区别在于,聚合器的部分结果在监视UI中的管道执行期间可用,并且可以编程方式使用

在Java中,您可以使用。如果您从[non blocking]
DataflowPipelineRunner
获取PipelineResult,则可以在作业运行时查询聚合器。如果使用
BlockingDataflowPipelineRunner
Pipeline.run()
将阻塞,直到作业完成后才能获得PipelineResult


还有支持:
gcloud alpha dataflow metrics tail JOB\u ID

@Frances有没有关于如何使用PipelineResult.getAggregatorValues()的示例?由于此方法将聚合器类的实例作为参数,建议采用什么方法?它是否将Aggregator实例作为DoFn实现字段,并使用getter作为标准方法检索其值?Tnx