You need to enable JavaScript to run this app. GCP BigQuery如何识别高频查询执行用户及获取核心运行统计指标
优惠活动
大模型
产品
解决方案
定价
更多

GCP BigQuery如何识别高频查询执行用户及获取核心运行统计指标

BigQuery多维度运行统计的可落地方案

所有统计需求完全可以通过GCP原生的BigQuery系统元数据、审计日志能力实现,不需要额外采购第三方监控工具,可直接为资源治理、效能分析提供量化数据支撑。

核心依赖数据源

整套统计逻辑不需要跨平台对接额外系统,两个GCP原生数据源即可覆盖所有需求:

  • BigQuery 区域级的 INFORMATION_SCHEMA 作业元数据视图,可直接获取所有作业的执行时间、发起人、处理数据量、执行状态等核心字段
  • Cloud Audit Logs 中收集的BigQuery访问类日志,可补充用户身份的明细信息,配合GCP目录服务完成用户姓名的关联匹配

对应需求的具体实现逻辑

每日访问用户数统计 + 用户姓名匹配

统计每日真实访问BigQuery的自然人用户规模时,首先从作业元数据中提取当日所有发起过查询、数据加载、导出操作的去重用户邮箱列表。由于元数据中默认存储的用户标识为账号邮箱,要匹配对应用户的真实姓名,只需要通过GCP目录服务的用户信息接口,以邮箱为关联键拉取账号对应的显示姓名,整合到统计结果中即可。

注意:统计时需要单独筛除服务账号的访问记录,和自然人用户做明确区分,避免统计口径偏离“实际使用产品的自然人用户”的定义。

按用户维度的单日累计查询执行量统计

这部分统计完全可以通过单条查询BigQuery系统视图实现,不需要跨表关联,核心统计逻辑如下:

  • 按作业创建时间的自然日切分统计周期
  • 以用户邮箱为分组维度
  • 过滤掉作业类型非查询、状态为未完成/已取消、执行报错的无效作业
  • 对有效作业的唯一作业ID做计数,即可得到单用户单日的累计查询量
    核心参考SQL示例:
SELECT
  DATE(creation_time) AS stat_date,
  user_email,
  COUNT(DISTINCT job_id) AS daily_valid_query_count
FROM
  `region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
WHERE
  job_type = 'QUERY'
  AND state = 'DONE'
  AND error_result IS NULL
GROUP BY
  stat_date,
  user_email

补充提示:系统视图默认仅保留近180天的作业元数据,做长期资源治理分析时,需要每日将统计结果同步到自建的永久存储数据集内,避免历史数据过期丢失。

单条查询平均数据使用量统计 + 查询量Top用户定位

单条查询的平均数据使用量可直接通过系统视图中的total_bytes_processed字段计算得到——即对统计周期内所有有效查询的处理数据量求平均值,即可得到单条查询的平均资源消耗水平。如果需要更细的分析,还可以按用户维度分别计算单条查询的平均数据使用量,对比不同用户的查询资源效率。
要定位平台内执行查询总量最高的主体用户,只需要在按用户分组的单日查询量统计结果上,按查询总量做倒序排序,取排名靠前的主体即可。

口径提示:定位Top用户前需要明确“主体用户”的定义——是仅统计自然人用户,还是需要按部门聚合、是否纳入服务账号的批量跑批作业,避免出现无业务参考价值的统计结果。

落地注意事项

  • 权限要求:执行统计任务的账号仅需要BigQuery元数据读取、Cloud Logging查询权限,整个统计过程仅读取元数据,不会触达用户实际查询的业务数据内容,完全符合数据合规要求
  • 结果去重:统计查询量时需要排除BigQuery自动触发的元数据探查查询、缓存命中的零成本查询,避免统计结果虚高
  • 关联实时性:用户姓名匹配时建议实时从目录服务拉取最新信息,不要使用静态映射表,避免出现用户改名后统计结果不同步的问题

内容的提问来源于stack exchange,提问作者Shubham Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 12:24:03