Google cloud dataflow 是否可以在不丢失当前数据的情况下停止流式处理作业?

Google cloud dataflow 是否可以在不丢失当前数据的情况下停止流式处理作业?,google-cloud-dataflow,Google Cloud Dataflow,我有一个从PubSub订阅读取的流媒体管道。管道应用1小时的固定窗口,并在执行一些转换(如GroupByKey)后,将数据写入BigQuery 我的问题是,如果停止作业执行,当前窗口的数据不会写入BigQuery,这些数据也会丢失,因为它们既不在订阅中,也不在BigQuery中写入。更新正在运行的数据流管道的功能正在开发中。事实上,它的一个版本已经提交到我们的GitHub存储库中,并且应该成为Maven Central下一版本的一部分。具体版本信息请按以下说明 更新功能通过--update管道选

我有一个从PubSub订阅读取的流媒体管道。管道应用1小时的固定窗口,并在执行一些转换(如GroupByKey)后,将数据写入BigQuery


我的问题是,如果停止作业执行,当前窗口的数据不会写入BigQuery,这些数据也会丢失,因为它们既不在订阅中,也不在BigQuery中写入。

更新正在运行的数据流管道的功能正在开发中。事实上,它的一个版本已经提交到我们的GitHub存储库中,并且应该成为Maven Central下一版本的一部分。具体版本信息请按以下说明

更新功能通过
--update
管道选项触发。有关更多详细信息,请参阅。

Marcos


更新功能现在在Maven中运行。它要求您使用相同的jobName值和--update标志运行新的兼容管道。但是请注意,如果您对代码更改过多(这通常涉及删除或更改GroupByKey或其他组合操作),则更新将失败,因为服务不知道如何将旧状态与新管道关联。

Marcos-是否要使用新版本的代码重新加载管道?或者你想耗尽管道,然后永久停止它。Reuven-我想用新版本的代码重新加载管道,而不会丢失数据。Davor-这是更新数据流管道的一个非常有用的功能。谢谢但是,如果在某个时刻(例如一小时)我需要停止管道,是否可以停止流式处理作业而不丢失该小时窗口的当前数据?A这一次,
update
是我们在该空间中的唯一功能。也许您可以尝试更新管道。例如,更新后的管道可能会对未来窗口进行硬编码,并将该窗口中的数据存储在GCS上的文件中,以避免数据丢失。您可以找到文档