2017-06-01 16 views

回答

1

我不明白为什么你需要做这个后管道执行。您可以使用侧面输出将文件写入多个存储桶,并在管道完成后保存自己的副本。

如果这不适合你(无论什么原因),那么你可以简单地在blocking execution模式下运行你的管道,即使用pipeline.run().waitUntilFinish(),然后在那之后写下你的代码的其余部分。

[..] 
/do some stuff before the pipeline runs 
Pipeline pipeline = ... 
pipeline.run().waitUntilFinish(); 
//do something after the pipeline finishes here 
[..] 
+0

谢谢。使用'BlockingDataflowPipelineRunner'运行这个工作就可以实现。 'waitUntilFinish()'似乎在1.x Java API中不可用。 – user01380121

+1

正确,不是。您在1.x中使用Blocking runner和wait/poll –

-1

我觉得两个选项可以帮助你在这里:

1)使用TextIO写入桶或你想要的,指定的确切GCS路径(如GS文件夹://沙箱/其他桶)

2)使用Object Change Notifications结合Cloud Functions。你可以在这个here和JS的GCS SDK中找到一个很好的入门书。在这个选项中你将做的事情基本上是在某物桶落下时设置一个触发器,并使用自己写的云功能将其移动到另一个。

相关问题