Google cloud dataflow 写入步骤完成后,流式管道发布到pubsub

Google cloud dataflow 写入步骤完成后,流式管道发布到pubsub,google-cloud-dataflow,apache-beam,google-cloud-pubsub,Google Cloud Dataflow,Apache Beam,Google Cloud Pubsub,我有一个用例,其中数据流作业以流模式运行,每小时固定一次 当管道为给定窗口运行时,我们计算一些数据并将其写入数据源。下一步我要做的是在写入完成后向PubSub发布一些消息-在写入PubSub之前,我如何确保写入步骤已完成 如果管道是在批处理模式下执行的,我知道我可以按照建议以阻塞方式执行它,但棘手的是,它总是在流模式下运行。transform就是为这个用例设计的。有关用法示例,请参阅文档。您在哪里编写?如果在存储中,您可以使用Good point,感谢您的澄清-在本例中,我写信给BigQuery

我有一个用例,其中数据流作业以流模式运行,每小时固定一次

当管道为给定窗口运行时,我们计算一些数据并将其写入数据源。下一步我要做的是在写入完成后向PubSub发布一些消息-在写入PubSub之前,我如何确保写入步骤已完成


如果管道是在批处理模式下执行的,我知道我可以按照建议以阻塞方式执行它,但棘手的是,它总是在流模式下运行。

transform就是为这个用例设计的。有关用法示例,请参阅文档。

您在哪里编写?如果在存储中,您可以使用Good point,感谢您的澄清-在本例中,我写信给BigQuery,但同样的问题也适用于任何数据库。谢谢Raghu!这正是我想要的:)根据文档,这应该可以工作,但是对于I/O写操作,我使用BigqueryIO.write,这会产生一个PDone,而Wait.on()将与PCollection一起使用-这是否意味着我必须编写自己的数据接收器,或者可以与提供的方法一起使用(我真的希望避免重新发明轮子)。查看示例和限制:基本上需要执行
Wait.on(writeResult.getFailedInserts())
-但这只适用于流式输入,此时您是对的。BigQueryIO尚未更新以支持此用例。看起来它很快就会得到修复[1].在此之前,它不能与Wait一起使用。[1]: