从 REST API 更新 Dataflow 作业
Posted
技术标签:
【中文标题】从 REST API 更新 Dataflow 作业【英文标题】:Updating a Dataflow job from the rest API 【发布时间】:2017-11-27 17:38:22 【问题描述】:我正在尝试使用 REST API 以编程方式更新云 DataFlow 作业,如 here 所述
我有一个 PubSub to BigQuery 作业,我的最终目标是替换 BigQuery 输出表。
我尝试使用 replacedByJobId 字段将当前作业更新为新作业,但总是收到此错误:
“错误”: “代码”:400, “消息”:“(b7fd8310f1b85ccf):无法修改工作流程;无效的修改值:0”, “状态”:“INVALID_ARGUMENT”
请求正文:
"id": "jobid", "projectId": "projectId", "replacedByJobId = "newJobId",
是否有其他方法可以替换正在运行的作业的参数 (OutputTable) 或用新的类似作业替换正在运行的作业?
【问题讨论】:
【参考方案1】:为了更新作业,您还需要提供兼容的替换作业。请注意,目前仅支持使用 Java SDK 进行更新。
您可以在以下位置找到有关使用 Java SDK 进行更新的文档:Updating an Existing Pipeline: Launching Your Replacement Job。
【讨论】:
啊,我害怕这个。所以我想要做的事情是不可能从 REST API 做的。谢谢!【参考方案2】:java -jar pipeline/build/libs/pipeline-service-1.0.jar \
--project=my-project \
--zone=us-central1-f \
--streaming=true \
--stagingLocation=gs://my-bucket/tmp/dataflow/staging/ \
--runner=DataflowPipelineRunner \
--numWorkers=5 \
--workerMachineType=n1-standard-2 \
--jobName=ingresspipeline \
--update
【讨论】:
通常最好在代码旁边为您的答案提供一些解释。因为它是我不相信这与问题有任何关系以上是关于从 REST API 更新 Dataflow 作业的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Python SDK 中的 Dataflow 作业连接到 CloudSQL?
从 Dataflow python 作业写入 bigquery 中的分区表