我有一个在 Google Dataflow 上运行并从发布/订阅中读取的管道。我使用指标(主要是计数器)来了解处理了多少事件。 一般的想法是它从 pubsub 读取 protobuf 消息,反序列化它们并将其转储到不同的 BigQuery 表中。 我在 ParDo 中有一个计数器,用于执行反序列化,在 ParDo 中有一个计数器,用于将插入到 BQ 中。大多数情况下,结束计数器和开始计数器之间的差异很大,大约 40%。管道步骤的壁垒时间一直在增加,但管道的数据新鲜度和系统延迟非常低,大约 30 秒...
您可以看到 size_ok
指标,它是管道中的第一个指标,如果将以下所有指标相加,您甚至不会接近这个数字。
我的问题是,为什么 size_ok 指标(开始处理的事件总数)与 inserts
指标之间存在如此大的差异。如果将所有插入指标相加,则它们不可能像 size_ok 所示的那样将 660 万个事件相加