首页 > 解决方案 > googleapis bigquery listjobs 未返回任何结果

问题描述

我正在测试一些代码来调用 googleapis bigquery listjobs REST API。我要去:

https://bigquery.googleapis.com/bigquery/v2/projects/PROJID/jobs

使用从服务帐户生成的访问令牌。结果从不包括工作细节,只是:

{
  "etag": "tAZvk1k2f2GY8yHaQF7how==",
  "kind": "bigquery#jobList"
}

如果我从 bq cli 工具或文档中的“try this api”表单进行调用,我会得到结果。如果我切换到列出数据集,我也会得到结果。查询中有什么明显的错误吗?

标签: google-bigquery

解决方案


默认情况下,BigQuery 列表作业 API仅返回由发出请求的用户启动的作业。bqCLI /“尝试此 API”和您的 REST API 调用之间的区别在于CLIbq以您的 Google 帐户发出请求,但您使用的是 REST API 的服务帐户。

allUsers查询参数设置true为列出项目的所有作业。

https://bigquery.googleapis.com/bigquery/v2/projects/PROJID/jobs?allUsers=true

注意:您的服务帐号需要具有 BigQuery Admin IAM 角色才能发出此类请求。


推荐阅读