我可以在项目之间运行dataflowjob吗?

时间:2020-04-27 14:08:26

标签: google-cloud-platform google-cloud-storage google-cloud-dataflow google-cloud-spanner

我想将数据从项目A中的Cloud Spanner导出为项目B中的GCS作为AVRO。 如果我为项目B中的服务帐户提供了对项目A中的spanner.read访问权限,我是否可以使用模板Cloud_Spanner_to_GCS_Avro从项目B运行数据流作业并写入项目B中的GCS?

我已经在控制台和以下命令中进行了尝试:

gcloud dataflow jobs run my_job_name 
--gcs-location='gs://dataflow-emplates/latest/Cloud_Spanner_to_GCS_Avro' 
--region=my_region 
--parameters='instanceId=name_of_instance,databaseId=databaseid,outputDir=my_bucket_url 
--service-account-email=my_serviceaccount_email

我不确定如何指定Spanner实例的projectId。 使用项目B中的此命令,它将查找项目B:s Spanner,并且找不到实例和数据库。

我尝试设置:instanceId = projects / id_of_project_A / instances / name_of_instance但不是有效的输入

2 个答案:

答案 0 :(得分:1)

是的,您必须在My company site

上授予正确的授权

我建议您使用“用户管理的服务帐户”。默认的帐户是Compute Engine默认服务帐户,该帐户在宿主项目上具有editor角色,授权过多....

答案 1 :(得分:0)

因此答案似乎是,对于某些模板,或者如果您编写自定义模板,而我不想使用的模板,则可以从Spanner批量导出到GCS Avro文件。 并且可以在以后的更新中将其添加到模板中。