You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery:评估各表读取量及数据网格模式下跨团队查询分析咨询

解决方案:BigQuery跨团队数据访问追踪实现

完全可以实现你的需求,Audit Logs是解决跨项目数据访问追踪的核心方案,结合BigQuery的日志分析能力,能覆盖你需要的访问频率、资源消耗、查询概览等所有指标,具体实现步骤如下:

一、基于Audit Logs的核心实现流程

1. 开启并导出审计日志

  • 在组织或项目层级开启BigQuery的data_access类型审计日志,重点启用jobs.create(追踪查询执行)和tables.getData(记录数据读取行为)两类日志。
  • 将审计日志导出到专门的日志分析项目下的BigQuery数据集,确保该数据集有独立的权限管控,避免日志数据泄露。

2. 分析日志提取关键指标

通过SQL查询导出的审计日志表,可直接提取你需要的所有信息:

  • 访问频率:按生产者表、消费者团队分组统计查询次数
  • 资源消耗:提取total_bytes_processed(处理字节数)、slot_millis(插槽占用时长)计算总消耗
  • 查询概览:从日志中提取查询语句片段,脱敏后展示核心逻辑

以下是简化的分析SQL示例:

SELECT
  -- 生产者表标识
  JSON_EXTRACT_SCALAR(protopayload_auditlog.resourceName, "$.table.projectId") AS producer_project,
  JSON_EXTRACT_SCALAR(protopayload_auditlog.resourceName, "$.table.datasetId") AS producer_dataset,
  JSON_EXTRACT_SCALAR(protopayload_auditlog.resourceName, "$.table.tableId") AS producer_table,
  -- 消费者信息(假设邮箱前缀为团队标识)
  protopayload_auditlog.authenticationInfo.principalEmail AS consumer_user,
  SPLIT(protopayload_auditlog.authenticationInfo.principalEmail, '@')[OFFSET(0)] AS consumer_team,
  -- 访问指标
  COUNT(*) AS access_count,
  SAFE_CAST(JSON_EXTRACT_SCALAR(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalBytesProcessed, "$") AS INT64) AS total_bytes_processed,
  SAFE_CAST(JSON_EXTRACT_SCALAR(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.slotMillis, "$") AS INT64) AS total_slot_millis,
  -- 查询语句片段(脱敏前截取前100字符)
  SUBSTR(JSON_EXTRACT_SCALAR(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.query, "$"), 1, 100) AS query_snippet
FROM
  `your-log-project.your-log-dataset.cloudaudit_googleapis_com_data_access_*`
WHERE
  -- 筛选读取生产者数据的查询操作
  protopayload_auditlog.methodName = "jobs.create"
  -- 可添加生产者项目过滤,限制当前团队仅查看自身表的访问日志
  AND JSON_EXTRACT_SCALAR(protopayload_auditlog.resourceName, "$.table.projectId") IN ("team-a-project", "team-b-project")
GROUP BY
  producer_project, producer_dataset, producer_table, consumer_user, consumer_team, query_snippet
ORDER BY
  access_count DESC;

二、权限管控与数据安全

针对你提到的Information Schema权限限制问题,Audit Logs的优势在于可以通过以下方式实现细粒度权限控制:

  • 行级权限(RLS):给日志分析数据集添加行级安全规则,限制每个生产者团队只能查看resourceName包含自身项目ID的日志行,避免跨团队数据泄露。
  • 脱敏处理:如果需要展示查询语句,务必对敏感字段(如用户ID、业务密钥)进行脱敏,可通过REGEXP_REPLACE等函数替换敏感内容。

三、补充优化方式

  • 可以将分析结果定期同步到生产者团队的专属数据集,让他们无需访问日志分析项目就能查看自身数据的访问情况。
  • 结合BigQuery的可视化工具,将访问频率、资源消耗等指标做成看板,方便生产者直观监控。

内容的提问来源于stack exchange,提问作者Thomas W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:18:31