我使用谷歌云数据流服务已经使用apache beam python sdk已经有一段时间了。
我正在为新项目设置数据流。
数据流管道
我在其他正在运行的项目上运行类似的管道。
今天,当我启动数据流作业时,管道启动,从数据存储读取数据,处理它以及何时将其写入bigquery,结果
apache_beam.runners.dataflow.dataflow_runner.DataflowRuntimeException:
Dataflow pipeline failed. State: FAILED, Error:
Workflow failed. Causes: S04:read from datastore/GroupByKey/Read+read
from datastore/GroupByKey/GroupByWindow+read from datastore/Values+read
from datastore/Flatten+read from datastore/Read+convert to table
rows+write to bq/NativeWrite failed., BigQuery import job
"dataflow_job_8287310405217525944" failed., BigQuery creation of import
job for table "TableABC" in dataset "DatasetABC" in project "devel-
project-abc" failed., BigQuery execution failed., Error:
Message: Access Denied: Dataset devel-project-abc:DatasetABC: The user
service-account-number-compute@developer.gserviceaccount.com does not
have bigquery.tables.create permission for dataset devel-project-
abc:DatasetABC: HTTP Code: 403
我确保启用了所有必需的API。据我所知,服务帐户有必要的许可。
我的问题是这可能会出错?
更新
从我以前的项目中记得(准确地说是3个不同的项目),我没有给数据流服务代理任何特定的权限。 计算引擎服务代理具有数据流管理,编辑器,数据流查看器等权限。 因此,在继续向服务代理提供与bigquery相关的权限之前,我想知道为什么环境的行为与以前的项目不同。
是否有任何权限/政策更改/更新在过去几个月内生效,导致需要大量作者的许可?
答案 0 :(得分:1)
请确保您的服务帐户(' service-account-number-compute@developer.gserviceaccount.com')有' roles / bigquery.dataEditor'在devel-project-abc:DatasetABC'中的作用。 还要确保' BigQuery数据编辑器'为您的项目启用了角色。
GCP IAM是您可以查看的地方。
答案 1 :(得分:0)
您可以找到BigQuery here的每个角色的功能。如果您以前的项目使用的是primitive IAM角色,则可能需要正确设置。此处提供了IAM Release Notes页,其中提供了有关系统更新的更多信息。
答案 2 :(得分:0)
您的问题不清楚!
如果您问为什么数据流无法写入BigQuery?,那么答案应该与您对使用的服务帐户的权限有关。检查Michael Moursalimov
的答案...
但是,如果您要问旧项目和新项目之间有什么区别?然后我无法回答,请寻求GCP支持,或者只是花更多时间比较两个项目的设置