【发布时间】:2016-11-26 08:32:50
【问题描述】:
有没有办法在 Google Dataflow 作业完成后将消息发布到 Google Pubsub?我们需要通知依赖系统传入数据的处理已完成。 Dataflow 将数据写入 sink 后如何发布?
编辑: 我们希望在管道完成写入 GCS 后通知。我们的管道如下所示:
Pipeline.create(选项) 。申请(....) .apply(AvroIO.Write.named("写入 GCS") .withSchema(Extract.class) .to(options.getOutputPath()) .withSuffix(".avro")); p.run();如果我们在 pipeline.apply(...) 方法之外添加逻辑,我们会在代码完成执行时收到通知,而不是在管道完成时收到通知。理想情况下,我们可以在 AvroIO 接收器之后添加另一个 .apply(...) 并将消息发布到 PubSub。
【问题讨论】:
-
当您的管道完成时,没有什么能阻止您向 pub/sub 主题写入消息。您不需要 Dataflow 来执行此操作。
-
可能需要使用BlockingPipelineRunner(cloud.google.com/dataflow/pipelines/…)才能达到想要的效果。
-
我有一个类似的用例,但我的管道以流模式运行,每隔一小时。我想在每个窗口的写入完成后向 pubsub 发布一条消息。
标签: google-cloud-dataflow google-cloud-pubsub