2016-03-15 135 views
1

是否可以延迟确认直到子图(PubSubIO.Read下面的所有内容)被成功处理?使用谷歌云数据流PubSubIO,何时读取消息得到确认?

例如,我们从谷歌发布订阅订阅读取信息,然后将文件写入GCS和另外一个分支,我们使用BigQueryIO.Write写的BigQuery ...

我们看到,如果发生异常将无限期地重试,因为我们处于流模式。但是,如果我们取消作业并重新部署代码更改,则不会重新处理该消息。

回答

1

一旦消息在数据流管道中的某处持续存在,就会进行确认。如果要在不丢失传送数据的情况下更改管道,请使用更新功能而不是取消:https://cloud.google.com/dataflow/pipelines/updating-a-pipeline

+0

是否可以正常停止管道执行,以确保不会丢失已读取的数据订阅但未完全处理? – successhawk

+1

该功能称为Drain,即将推出。它将允许您排除正在运行的管道中的所有数据,包括缓冲等待窗口完成的数据。 – danielm