【问题标题】:Updating a Dataflow job from the rest API从 REST API 更新 Dataflow 作业
【发布时间】: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) 或用新的类似作业替换正在运行的作业?

【问题讨论】:

    标签: google-cloud-dataflow


    【解决方案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
    

    【讨论】:

    • 通常最好在代码旁边为您的答案提供一些解释。因为它是我不相信这与问题有任何关系
    猜你喜欢
    • 1970-01-01
    • 2017-05-06
    • 2020-07-02
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多