如何获取 BigQuery 中运行的所有查询的计数

问题描述 投票:0回答:1

我正在尝试获取有关 BigQuery 中运行的查询数量及其状态的信息。

我试过这个:

select count(job_id) as job_count, state
from `MY_PROJECT`.`region-MY_REGION`.INFORMATION_SCHEMA.JOBS
where creation_time between
    TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
    AND CURRENT_TIMESTAMP()
and query not like 'select count(job_id) as job_count, state%'
and project_id = 'MY_PROJECT'
group by state;

但我似乎只获得由 my 用户提交的查询的计数。我知道还有更多的活动,因为当我进入监控页面“作业资源管理器”时,我还可以看到不同服务帐户提交的作业,以及每个状态有多少个作业。事实上,我可以在 UI 中看到这些作业,这让我怀疑这是一个与权限相关的问题(除非查询需要与 UI 不同的权限)。

我需要能够以编程方式获取该信息,而不是查看 UI,并且我不确定为什么上面的查询不能做到这一点。

sql google-bigquery
1个回答
0
投票

您应该使用

INFORMATION_SCHEMA.JOBS_BY_PROJECT
而不是
INFORMATION_SCHEMA.JOBS
(它仅返回当前用户运行的作业)。还需要确保您拥有访问所需的权限
INFORMATION_SCHEMA.JOBS_BY_PROJECT

select count(job_id) as job_count, state
from `MY_PROJECT`.`region-MY_REGION`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
where creation_time between
    TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)
    AND CURRENT_TIMESTAMP()
and query not like 'select count(job_id) as job_count, state%'
and project_id = 'my_project'
group by state;
© www.soinside.com 2019 - 2024. All rights reserved.