【问题标题】:BigQuery GCP Python IntegrationBigQuery GCP Python 集成
【发布时间】:2023-03-16 03:13:02
【问题描述】:

我正在尝试用 Python 而不是 BigQuery 编写我的所有脚本。我使用“glcoud config set project”设置我的活动项目,但我仍然收到此错误 403 POST https://bigquery.googleapis.com/bigquery/v2/projects/analytics-supplychain-thd/jobs:调用者没有使用项目分析供应链thd 所需的权限。通过访问 https://console.developers.google.com/iam-admin/iam/project?project=analytics-supplychain-thd 为调用方授予 Owner 或 Editor 角色,或具有 serviceusage.services.use 权限的自定义角色,然后重试(新权限的传播可能需要几分钟时间)。

我该如何解决这个问题?

【问题讨论】:

  • 您能否添加有关您到底想做什么的信息?你打算怎么做?
  • 你运行什么命令?什么是完整的错误跟踪?
  • 阅读此链接,然后编辑您的问题以适合 Stack Overflow。 stackoverflow.com/help/minimal-reproducible-example

标签: python google-cloud-platform google-bigquery


【解决方案1】:

我怀疑您选择了错误的“key”.json,至少在您尝试执行的操作之一的权限方面。当前在 GOOGLE_APPLICATION_CREDENTIALS 中定义的密钥 [1] 似乎没有正确的权限。您应该授予服务帐户的角色列表可以在此处找到 [2],无论如何,从您的错误来看,您至少需要一个原始角色作为所有者或编辑者。后者取决于您的需求和目标(您通过此类脚本执行的操作)。

您应该为您的操作选择正确的角色并将其与您要使用的服务帐户相关联,从而通过 IAM 门户 UI 为其定义一个身份,也可以通过 CLI 或 API 调用来实现。

然后确保您使用的客户端使用正确的服务帐户(正确的 json 密钥路径)登录。

特别是,我用你给我的代码来测试,我已经能够加载数据了:

import pandas_gbq 
import google.oauth2.service_account as service_account
# TODO: Set project_id to your Google Cloud Platform project ID 
project_id = "xxx-xxxx-xxxxx" 
sql = """SELECT * FROM xxx-xxxx-xxxxx.fourth_dataset.2test LIMIT 100""" 
credentials = service_account.Credentials.from_service_account_file('/home/myself/key.json')
df = pandas_gbq.read_gbq(sql, project_id=project_id, dialect="standard", credentials=credentials)

这个 希望这会有所帮助!

[1]https://cloud.google.com/docs/authentication/getting-started#setting_the_environment_variable

[2]https://cloud.google.com/iam/docs/understanding-roles#primitive_roles

【讨论】:

  • 这是我尝试运行的: import pandas_gbq # TODO: 将 project_id 设置为您的 Google Cloud Platform 项目 ID project_id = "analytics-supplychain-thd" sql = """ SELECT * FROM KXS26XY.OSC_FY2022_MIXTIER_08SDCs_SCENARIO_V1 " "" df = pandas_gbq.read_gbq(sql, project_id=project_id)
  • 我用您用于故障排除的代码修改了我的答案。请注意,您还应该具有数据集级别的访问权限才能从中读取数据。
猜你喜欢
  • 1970-01-01
  • 2021-03-24
  • 2021-03-25
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
相关资源
最近更新 更多