如何在Python中访问Google BigQuery的另一个项目?
我已获准从云控制台查看合作者的Google BigQuery项目数据。我可以查看数据集、表格,运行SQL命令,并在Google BigQuery环境中查看数据。
我想通过Python完成所有这些操作。
为了通过Python查看我自己的数据,我创建了一个项目、数据集以及一些表。我创建了一个服务账户和一个密钥。
并下载了相应的JSON文件。
在Python中,我运行了以下代码,就能看到正确的数据:
from google.cloud import bigquery
import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = "****.json" #file containing account file info
client = bigquery.Client()
query = """SELECT * FROM `my_project.test.ddd` LIMIT 1000"""
df= client.query(query).result().to_dataframe()
df.head()
现在,我想查看我合作者的项目数据。
query = """SELECT * FROM `collaborators_project.uat.uat_adp` LIMIT 1000"""
df= client.query(query).result().to_dataframe()
df.head()
我遇到了一个 google.api_core.exceptions.Forbidden: 403 Access Denied 错误。我的合作者已经授予我查看数据的权限,因为从云控制台我可以查看到各个表等。
需要做哪些步骤,才能让我访问合作者的数据?我的合作者坚持认为我的服务账户就足够访问。为了实现这一点,需要执行哪些步骤,因为我的合作者也不知道具体步骤,或者我需要做哪些步骤,以便把他们的项目关联到我的服务账户?
解决方案
请参考以下建议: https://docs.paradime.io/app-help/guides-new/data-warehouse-essentials/bigquery-multi-project-service-account(第4点:为其他项目授予访问权限)
总之,
- 将我的服务账户邮箱告知合作者。
- 合作者通过该服务账户邮箱授予了相应的权限。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。
