gpt4 book ai didi

google-bigquery - BQ cli 未从 Google 表格获取数据

转载 作者:行者123 更新时间:2023-12-04 23:11:29 27 4
gpt4 key购买 nike

我正在尝试使用 bq cli 运行查询,该查询将连接到 Google 表格的表中的数据与 Bigquery 上的另一个表连接起来。我在 Google Compute Engine 上的一个实例上运行它,但出现此错误:

Access Denied: BigQuery BigQuery: No OAuth token with Google Drive scope was found.

我看了一下,发现我需要更改范围,但我的实例已经设置了“允许对所有云 API 的完全访问”。

谁知道怎么解决?

谢谢

最佳答案

问题是 Drive 不是云 API 的一部分。它属于 GSuite Activity API。参见 here .因此,您的 GCE 实例上的服务帐户未启用云端硬盘 (https://www.googleapis.com/auth/drive) 的范围。

这是您需要做的:

  1. 通过点击 https://console.developers.google.com/apis/api/drive.googleapis.com/overview?project=[YOUR-PROJECT-NUMBER] 在您的项目中启用 Drive API
  2. 创建实例时,使用 CLI 工具添加云端硬盘范围,即 gcloud compute instances create [YOUR-PREFERRED-INSTANCE-NAME] --scopes=https://www.googleapis.com/auth/驱动器,https:/
    /www.googleapis.com/auth/bigquery --zone=[YOUR-PREFERRED-ZONE]
  3. 现在运行您的查询,它应该可以工作,即 bq query "SELECT * FROM [grey-sort-challenge:sheets_test.test]"

使用由 Drive 中的测试表支持的 BigQuery 表,我最初遇到了与您相同的错误。但是,在如上所述设置范围后,它现在可以工作了:

enter image description here

enter image description here

现在,在我的测试/示例中,我从头开始创建了一个实例(第 2 步)。但是,如果您想修改现有实例,则需要停止该实例,然后使用 gcloud beta compute instances set-scopes 命令更新范围。参见 here .

注意:当您以这种方式设置范围时,您将破坏任何已设置的现有范围 - 因此请确保输入您需要的所有范围,例如:gcloud beta compute instances set-scopes [实例名称] --scopes=https://www.googleapis.com/auth/drive,https://
www.googleapis.com/auth/bigquery,...

关于google-bigquery - BQ cli 未从 Google 表格获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085437/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com