我可以 运行 项目之间的数据流作业吗?
Can I run dataflowjob between projects?
我想将项目 A 中的 Cloud Spanner 中的数据作为 AVRO 导出到项目 B 中的 GCS。
如果我在项目 B 中的服务帐户在项目 A 中获得 spanner.read 访问权限,我可以 运行 来自项目 B 的数据流作业,模板为:Cloud_Spanner_to_GCS_Avro 并写入项目 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 但它不是有效输入
可以,您必须在 dataflow service account
上授予正确的授权
我建议您使用 "user-managed service account"。默认是 Compute Engine 默认服务帐户,在宿主项目上具有 editor
角色,授权过多....
所以答案似乎是某些模板是可能的,或者如果您编写自定义模板,但不是我想要使用的模板,则可以从 Spanner 批量导出到 GCS Avro 文件。
并且它可能会在将来更新模板时添加。
我想将项目 A 中的 Cloud Spanner 中的数据作为 AVRO 导出到项目 B 中的 GCS。 如果我在项目 B 中的服务帐户在项目 A 中获得 spanner.read 访问权限,我可以 运行 来自项目 B 的数据流作业,模板为:Cloud_Spanner_to_GCS_Avro 并写入项目 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 但它不是有效输入
可以,您必须在 dataflow service account
上授予正确的授权我建议您使用 "user-managed service account"。默认是 Compute Engine 默认服务帐户,在宿主项目上具有 editor
角色,授权过多....
所以答案似乎是某些模板是可能的,或者如果您编写自定义模板,但不是我想要使用的模板,则可以从 Spanner 批量导出到 GCS Avro 文件。 并且它可能会在将来更新模板时添加。