使用信息架构进行问题排查

作为 BigQuery 管理员或数据分析师,管理企业工作负载需要一种可靠且可伸缩的方式来诊断性能瓶颈、查询失败、容量限制和存储空间增长。BigQuery 信息架构视图是可观测性的基础,可通过标准 GoogleSQL 查询访问近乎实时的历史元数据。

本文档概述了使用信息架构排查 BigQuery 问题的核心原则,提供了管理问题排查工具箱的结构化概览,并引导您前往 BigQuery 库中的特定视图。

按任务进行信息架构问题排查

下表总结了按任务和诊断使用场景分类的实用信息架构视图:

任务 使用场景 信息架构视图
查询性能和错误
  • 确定占用槽位最多且费用最高的查询。
  • 汇总作业错误原因和失败模式。
  • 分析每个阶段的执行时间和溢出字节数。
工作负载容量和争用
  • 检测槽位争用、限制和排队时间。
  • 监控内存内 shuffle 内存饱和度。
  • 审核预留基准和自动扩缩槽位使用情况。
  • 验证项目和文件夹预留分配。
存储费用和数据架构
  • 确定物理或逻辑存储空间失控的表。
  • 检测时间旅行和故障安全存储空间膨胀。
  • 诊断分区倾斜和即将达到分区限制的表。
  • 发现时间旅行窗口中已过期或已删除的表。
访问权限控制和治理
  • 审核对表和数据集的显式 Identity and Access Management (IAM) 角色授予。
  • 排查用户和服务账号的“访问被拒”错误。
  • 跟踪跨项目数据集共享和分析使用情况。
数据注入流水线
  • 监控 Storage Write API 注入吞吐量和错误。
  • 诊断流式插入延迟时间和速率限制。
  • 按流类型和错误代码确定失败的流。
机器学习和向量搜索
  • 跟踪模型训练时长和资源消耗。
  • 审核向量索引构建状态和覆盖率百分比。
  • 排查存储过程和 Python UDF 构建问题。
工作负载优化洞见
  • 查看自动分区和聚类建议。
  • 确定具体化视图候选表。

使用信息架构进行问题排查的原则

在 BigQuery 中诊断工作负载或环境问题时,请遵循以下核心原则:

  • 按区域、数据集和项目确定范围。 BigQuery 工作负载管理和计算资源在区域边界内执行。请考虑以下事项:

    • 始终指定正确的区域限定符 (例如 region-REGION.INFORMATION_SCHEMA.JOBS_BY_PROJECT)或 数据集限定符。

    • 根据您是调查单个用户问题、特定于项目的工作负载还是租户级问题,选择适当的层次结构级别 (BY_PROJECT, BY_USER, BY_FOLDERBY_ORGANIZATION) 。

  • 将计算需求与容量相关联。 查询性能缓慢通常是槽位争用而非低效 SQL 的结果。比较相同时间窗口内的作业资源请求 (period_estimated_runnable_units) 与分配的预留槽位 (period_slot_ms),以区分查询调整机会和容量不足导致的问题。

  • 考虑遥测粒度和保留边界。不同的信息架构视图以不同的刷新间隔和数据保留窗口运行。JOBS 视图中的作业元数据保留 180 天, 而 JOBS_TIMELINERESERVATIONS_TIMELINE 视图中的高分辨率时间轴指标保留时间较短(通常为 14 到 30 天)。对于长期审核和趋势分析,您应将遥测数据导出到分区表。

  • 避免在多语句查询中出现指标失真。 多语句脚本(包含 DECLAREIFWHILE 的过程 SQL)会生成一个父作业(statement_type = 'SCRIPT')和 每个语句的单独子作业。汇总 total_slot_mstotal_bytes_billed 等指标时,请过滤掉 statement_type = 'SCRIPT',以防止重复计算。

  • 按分区列进行过滤。 为了最大限度缩短查询执行时间并避免按需分析产生不必要的扫描费用,请始终在分区列(例如 creation_timejob_start_timeperiod_start)中添加限制性时间过滤条件。

后续步骤

  • 如需详细了解信息架构语法和可用 视图列表,请参阅 INFORMATION_SCHEMA 简介
  • 如需了解如何查看作业详细信息、列出活跃作业和取消正在运行的作业, 请参阅管理作业