如何从jar提交Dataflow作业?

时间:2017-04-26 12:07:03

标签: java maven google-cloud-dataflow

为了重现性,我希望能够构建包含数据流作业的jar,然后使用不同的参数运行它们(例如,通过不同的帐户进行推广)。这也将简化回滚,因为构建将是不可变的。

我目前正在使用maven DataflowPipelineRunner运行作业,但由于上述原因,自动部署等情况很糟糕。

如何直接从jar运行数据流作业?

2 个答案:

答案 0 :(得分:2)

啊看起来我需要templates

答案 1 :(得分:1)

我认为模板是最有前途的方法,但是目前如果你想写一个批处理作业来写BigQuery,你需要在每次想要运行一个工作时创建一个模板,这几乎破坏了模板。 (这解释为here

this Github README中所述,您可以通过调用mvn package来创建一个包jar,然后下面的内容应该可以使用jar文件提交数据流作业。

java -cp target/google-cloud-dataflow-java-examples-all-bundled-manual_build.jar \
com.google.cloud.dataflow.examples.WordCount \
--project=<YOUR CLOUD PLATFORM PROJECT ID> \
--stagingLocation=<YOUR CLOUD STORAGE LOCATION> \
--runner=BlockingDataflowPipelineRunner

这是我目前选择的方式,因为我需要与BigQuery进行交互。