Apache束流数据流卡在从PubSub读取度量值上

2024-04-29 10:05:49 发布

您现在位置:Python中文网/ 问答频道 /正文

对于一个非常简单的数据流管道,apachebeampython2.7sdk2.11.0存在一个奇怪的情况,需要将来自PubSub订阅的消息解析为几个BiqQuery表。在

没有错误或异常,数据流管道似乎在监视器控制台中工作(如下所示),但“Read PubSub Message”开始步骤无限期运行,而不会将读取消息释放到下一个转换。在

Pipeline

它只发生在DataflowRunner上,但在DirectRunner下工作得很好,所以在Dataflow中,它只是不断地从PubSub中累积消息,并缓慢地膨胀内存,而无需进一步推进。在

管道定义如下:

with b.Pipeline(options=pipeline_options) as p:
    metrics, failure \
        = (p
           | 'Read PubSub Message' >> b.io.ReadFromPubSub(subscription=config.incoming, with_attributes=True)
           | 'Parse Telemetry' >> b.FlatMap(parse, Monitor(config)).with_outputs('SUCCESS', 'FAILURE')
           )

    (metrics | 'Store Metrics' >> b.io.WriteToBigQuery(**raw_table))
    (failure | 'Store Failures' >> b.io.WriteToBigQuery(**err_table))

解析得到两个带标记的输出

^{pr2}$

我错过什么了吗?在


Tags: storeioconfig消息messagereadfailure管道