我的团队为我们用于监视和分析目的的许多数据流管道使用了很多聚合器(自定义计数器)。在合并步骤中使用“聚合器”(自定义计数器)的方法?
我们主要写DoFn
类的话,但我们有时使用Combine.perKey()
,通过编写实现SerializableFunction<Iterable<T>, S>
自己的组合类(通常在我们的例子中,T
和S
是相同的)。我们运行的一些工作只有一小部分非常热键,我们希望利用Combine
(如热键扇出)提供的一些功能,但这种方法存在一个问题。
看起来,聚合器只在DoFn
内可用,我想知道是否有解决方法,或者这是将来可能添加的功能。大多数情况下,我们使用一堆自定义计数器来计算不同类型的特定事件/对象的数量,以便进行分析和监控。在某些情况下,我们可以在Combine步骤之后应用另一个DoFn来完成此操作,但在其他情况下,我们确实需要在组合过程中对事物进行计数 - 例如,我们想知道对象在键上的分布情况,以了解如何例如,我们有很多热键,以及热键和热键之间的界限。还有一些其他情况对我们来说似乎很棘手。
我周围搜索,但我找不到在Combine
步骤中如何使用聚合器的资源,所以任何帮助将非常感激!
如果需要,我或许可以描述我们使用什么样的Combine
步骤以及我们要计数的内容,但是这需要一些时间,我希望能有一个通用的解决方案。
感谢您的快速响应和建议。我真的很希望指标功能即将添加! –