谷歌云数据流更新管道

2024-06-01 13:11:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试根据本手册(https://cloud.google.com/dataflow/docs/guides/updating-a-pipeline)更新现有管道。第一次更新没有任何问题,第二次更新总是失败。这两个更新没有区别-我只是在deploy命令中更改一个参数(pii_fields参数)

管道代码在这里https://pastebin.com/cRTjhNkg,我用于部署的命令如下所示:

python dev_radim_dataflow_gcs_direct_clean.py ^
 --project=data-uat-280814 ^
 --region="europe-west3" ^
 --input_subscription=projects/data-uat-280814/subscriptions/dev-radim-dataflow-local ^
 --output_path_gcs=gs://dev_radim/dataflow_dest_local/GCS ^
 --output_table_bq=data-uat-280814:dev_radim.dataflow_test_b ^
 --output_table_bq_schema=species:STRING,name:STRING,age:STRING,colour:STRING,publish_time:TIMESTAMP ^
 --rule_key=species ^
 --rule_value="guinea pig" ^
 --runner=DataflowRunner ^
 --window_size=1 ^
 --pii_fields=name
 --temp_location=gs://dev_radim/dataflow_temp_local/

update命令如下所示:

python dev_radim_dataflow_gcs_direct_clean.py ^
  --project=data-uat-280814 ^
  --update ^
  --job_name="<JOB NAME>" ^
  --region="europe-west3" ^
  --input_subscription=projects/data-uat-280814/subscriptions/dev-radim-dataflow-local ^
  --output_path_gcs=gs://dev_radim/dataflow_dest_local/GCS ^
  --output_table_bq=data-uat-280814:dev_radim.dataflow_test_b ^
  --output_table_bq_schema=species:STRING,name:STRING,age:STRING,colour:STRING,publish_time:TIMESTAMP ^
  --rule_key=species ^
  --rule_value="guinea pig" ^
  --runner=DataflowRunner ^
  --window_size=1 ^
  --pii_fields=name,age,colour ^
  --temp_location=gs://dev_radim/dataflow_temp/

当我第二次运行它时,我将返回INFO:apache_beam.runners.dataflow.dataflow_runner:2021-03-04T12:42:04.147Z: JOB_MESSAGE_ERROR: Workflow failed. Causes: The new job is not compatible with 2021-03-04_04_30_35-4398073276564428077. The original job has not been aborted.

你知道为什么更新第一次成功,第二次失败吗?此外,有没有办法检查哪些特定部件不兼容

编辑:我相信在第一次更新(fusing steps)之后会发生一些优化,这会导致第二次更新失败


Tags: namedevgsoutputdatastringlocaltable