目前,我正在使用DataFlow进行流处理,将上传的blobs从GCS迁移到BigQuery。但是,我发现有几条指向同一个objectId的pub/sub消息导致了BigQuery端的复制。
我知道GCS通知保证至少一次传递,因此对于给定的blob文件,我可能会有重复的pub/sub消息。
我阅读了Python文档,它可以使用id_label作为唯一的记录标识符。为了根据blob文件名去重复,我尝试在attributes.objectId args上插入id_label。尽管如此,它似乎不起作用(我仍然收到重复的消息):
| "Read from pub/sub topic" >> ReadFromPubSub( topic=config["prod"]["input_pubsub"], with_attributes=True, id_label="attributes.objectId")注意:我使用的是BeamPythonSDK2.38.0
发布于 2022-05-03 18:11:30
这是因为数据流方面的去重复是最好的努力。
数据流会在10分钟内将发布到Pub/Sub的消息进行重复。
见https://cloud.google.com/dataflow/docs/concepts/streaming-with-cloud-pubsub#efficient_deduplication。
https://stackoverflow.com/questions/72038174
复制相似问题