无法通过 API 查询 BigQuery 数据集来获取数据
Posted
技术标签:
【中文标题】无法通过 API 查询 BigQuery 数据集来获取数据【英文标题】:not able to get data by quereing the BigQuery dataset via API 【发布时间】:2016-07-01 06:54:16 【问题描述】:我刚刚开始探索 BigQuery 平台。我已经成功实现了流式输入并通过 API 列出了表中的数据。
现在我正在尝试通过 API 查询表,但即使在项目和数据集上具有“所有者”角色,也会出现以下错误。
Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
"code" : 403,
"errors" : [
"domain" : "global",
"message" : "Access Denied: Table eminent-expanse-134408:_f0217d6d035af97e7c4a87ad93962ba4c594717d.anonabb84babe0de5db5b0a1151dfa1857fcea3e92cd: The user abhinandan@eminent-expanse-134408.iam.gserviceaccount.com does not have permission to read data from a table in dataset eminent-expanse-134408:_f0217d6d035af97e7c4a87ad93962ba4c594717d",
"reason" : "accessDenied"
],
"message" : "Access Denied: Table eminent-expanse-134408:_f0217d6d035af97e7c4a87ad93962ba4c594717d.anonabb84babe0de5db5b0a1151dfa1857fcea3e92cd: The user abhinandan@eminent-expanse-134408.iam.gserviceaccount.com does not have permission to read data from a table in dataset eminent-expanse-134408:_f0217d6d035af97e7c4a87ad93962ba4c594717d"
我错过了什么?我应该启用计费吗?
【问题讨论】:
【参考方案1】:您使用的似乎是服务帐户 (abhinandan@eminent-expanse-134408.iam.gserviceaccount.com
),而不是您的用户帐户。服务帐户需要是项目的成员或数据集 ACL 上的(至少一个)读取器,您才能读取数据。
【讨论】:
我已经验证了服务帐户的权限。它是项目的所有者。我仍然遇到同样的错误。以上是关于无法通过 API 查询 BigQuery 数据集来获取数据的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery 控制台 api“无法在没有项目 ID 的情况下开始工作”
通过 Google BigQuery API 将查询结果导出为 JSON
BigQuery Storage API 无法读取由有序 (ORDER BY) 查询创建的临时表