【发布时间】:2020-01-30 08:04:03
【问题描述】:
我想将表从 SourceProject 复制到 DestProject。 SourceProject 归服务用户所有,DestProject 归我所有。 我已收到服务用户提供的访问 SourceProject 的凭据。 如何将表从 SourceProject 复制到 DestProject?
我正在检查这个问题。 Exporting BigQuery table from one project to another
我试过这段代码。
source_client = bigquery.Client(
credentials=user_credentials,
project=source_project,
)
dest_client = bigquery.Client(
credentials=my_credentials,
project=dest_project,
)
source_dataset = source_client.dataset("source_dataset", project="source_project")
source_table_ref = source_dataset.table("source_table")
dest_dataset = dest_client.dataset("dest_dataset", project="dest_project")
dest_table_ref = dest_dataset.table("dest_table")
job = dest_client.copy_table(
source_table_ref,
dest_table_ref,
) # API request
job.result()
但它不起作用。(是的,当然) 返回此消息。
google.api_core.exceptions.Forbidden: 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/dest_project/jobs: Access Denied: Dataset source_project:source_dataset: User does not have bigquery.tables.create permission for dataset source_project:source_dataset.
如果您能告诉我一个好方法或替代方法,那将会很有帮助。 感谢您的阅读。
【问题讨论】:
-
你检查过你用来写新表的用户是否有这个权限吗?
-
谢谢。我对权限的了解不够。我试着检查一下。
-
你检查了吗?请告诉我
-
很抱歉回复晚了。
-
权限并没有像你想象的那样设置。如果我设置了查看表的权限似乎可以工作,但是在这种情况下我不能采用那种方法,因为用户担心。所以我改变了方法下载表格的内容并作为数据框上传到我的 bigquery。谢谢。