Apache Beam 全球计数

Apache Beam Global Counting

我正在尝试了解解决以下问题的最佳方法:

作为一个简单的示例场景,我有一个文件,它描述了一个测试名称以及它的执行是否通过 (true/false)。

test-scenario,passed
--------------------
testA,true
testB,false

我可以使用 apache beam 读取文件,将文件解析为 PCollection<TestDetails>,然后使用后续转换写入所有已传递给一组文件的测试详细信息,同样适用于那些失败的测试。

写完上面的文件后,我最终想生成一些关于:处理的文件记录总数、通过的测试数、失败的测试数并将这些详细信息写入单个文件。

我应该为此使用全局组合吗?

为此,您可以使用 Beam Metrics(请参阅 documentation). It provides counters, that can be used for the needs you described above, and then metrics can be fetched once your pipeline is finished. Please, take a look on this example。此外,如果更方便,Beam 允许将指标导出到外部接收器。