2017-01-18 81 views
1

已有question on this topic,答案是「一旦消息持久存在Dataflow管道中某處,就會進行確認」。Dataflow何時確認來自PubSubIO的批量項目消息?

從概念上講,這是有道理的,但我不知道怎麼的數據流能夠跟蹤消息已反序列化和有效載荷堅持之前在管道改造後。

在我們的情況下,PubSub的消息包含了一批項目。收到消息並反序列化後,我們將該批處理分解。最終,根據其時間戳,批次中的項目可能會被丟棄或提交給數據存儲。

如何在這種情況下,確認工作?

回答

1

數據流在捆綁中執行您的代碼。成功執行後,每個bundle都會承諾避免在成功處理的元素上重新執行。管道中的每一步之間都不一定有套裝。請參閱the description of fusion optimization以瞭解有關何時實現PCollections和提交的詳細信息。已讀一包的一部分

對於PubSub的,郵件將被認定爲犯那束完成的部分。這意味着如果您查看PubSub讀取步驟以及其後的任何ParDo,則這些步驟將一起執行(並提交)。

添加的PubSubGroupByKey後,允許將消息儘快束致力於GroupByKey公認PubSub