问题排查简介
本文档简要介绍了可帮助您排查 BigQuery 问题的一些诊断工具、遥测接口和文档资源。
当您遇到查询失败、性能瓶颈、权限错误、配额限制或数据注入问题时,BigQuery 会提供内置工具来帮助您快速找出根本原因并解决问题。
问题排查工作流
如需有效排查 BigQuery 中的问题,请考虑以下诊断条件:
- 找出症状和失败模式。查看任务的结果,确定问题是硬性失败(例如错误代码或作业失败)、性能下降(例如查询速度缓慢或槽资源不足)、权限被拒绝还是意外的费用差异。
- 检查作业执行详情。使用 Cloud de Confiance 控制台 作业探索器、 查询执行图或 命令行工具 检查阶段级计时、槽分配和错误详情。您还可以让 Gemini Cloud Assist 调查您的问题。
- 分析遥测数据和元数据。查询 信息架构视图 或检查 Cloud Audit Logs,将作业行为与资源争用、 预留限制或管理变更相关联。
- 应用有针对性的缓解措施。使用 特定于类别的排查指南 或防御性 SQL 函数来解决根本原因。
区分问题排查与优化
在使用 BigQuery 时,务必区分问题排查、性能优化和最佳实践:
- 问题排查。侧重于诊断和解决意外失败、运行时错误、流水线中断、配额耗尽或阻止作业成功完成的意外行为。
- 性能优化。侧重于提高已成功运行的查询和工作负载的执行速度、延迟时间或资源效率。如需了解详情,请参阅 优化查询性能。
- 最佳实践。侧重于数据建模、存储、安全和费用管理的架构和设计模式。如需了解详情,请参阅 最佳实践简介。
诊断工具
以下部分介绍了几个 BigQuery 界面和自动化工具,可帮助您诊断工作负载中的问题。
可视化工具和控制台工具
以下工具可帮助您从 Cloud de Confiance 控制台排查 BigQuery 问题。
- 作业探索器。无需编写 SQL 查询,即可搜索、过滤和检查各个项目或组织中过去和正在运行的作业。 您可以查看出错提示、槽使用情况、执行时间轴和作业元数据。如需了解详情,请参阅 在作业探索器中监控作业。
- 查询执行图。检查查询的可视化阶段执行计划。执行图可帮助您找出瓶颈,例如溢出到磁盘的 Shuffle、受计算限制的阶段、数据倾斜或输入/输出延迟。如需了解详情,请参阅 获取查询性能分析洞见。
- Query Insights 和资源图表。查看槽利用率、作业并发性和预留分配的实时图表和历史图表,以诊断容量限制。如需了解详情,请参阅 使用管理资源图表。
- BigQuery 中的 Gemini Cloud Assist。获取对失败查询和性能瓶颈的上下文 AI 辅助分析。 Gemini Cloud Assist 会直接在 Cloud de Confiance 控制台中解释错误代码、突出显示有问题的 SQL 语法,并提供修复步骤建议。如需了解详情,请参阅 使用 Gemini Cloud Assist 排查查询问题。
命令行工具和自动化诊断工具
以下工具可帮助您从命令行界面诊断 BigQuery 问题。
- bq 命令行工具。使用
bq show -j <var>JOB_ID</var>命令或向查询命令添加--format=prettyjson标志,检查详细的错误结构、请求 ID 和作业 元数据。如需了解详情,请参阅 排查 CLI 命令问题。 gcpdiag工具。从命令行运行自动化诊断,以检测 常见 Cloud de Confiance 配置问题,包括 IAM 权限 差距、网络限制和服务帐号错误。如需了解详情, 请参阅使用gcpdiag排查查询失败问题。
元数据和遥测视图
借助信息架构视图,您可以使用标准 SQL 查询有关作业、容量、流式注入和数据集的实时元数据和历史元数据。这些视图包括:
- 作业执行遥测。查询
INFORMATION_SCHEMA.JOBS和INFORMATION_SCHEMA.JOBS_TIMELINE,以分析各个作业的槽毫秒消耗量、溢出字节数、队列时间和错误 代码。 - 预留和容量。查询
INFORMATION_SCHEMA.RESERVATIONS和INFORMATION_SCHEMA.CAPACITY_COMMITMENTS,以诊断槽分配、预留限制和自动扩缩行为。 - 流式处理和注入。查询
INFORMATION_SCHEMA.STREAMING_TIMELINE,以找出注入延迟时间和流式处理速率限制。 - 存储和分区状况。查询
INFORMATION_SCHEMA.TABLE_STORAGE,以检查物理表大小、活跃存储与长期存储的比例以及分区 分布。
如需了解详情,请参阅
BigQuery 简介 INFORMATION_SCHEMA。
Cloud Monitoring 和 Cloud Audit Logs
- Cloud Audit Logs。查看管理员活动和数据访问审核日志,以跟踪谁发起了特定操作、检查调用方身份,并诊断
PERMISSION_DENIED错误。如需了解详情,请参阅 BigQuery 审核日志记录参考文档。 - Cloud Monitoring。跟踪槽使用情况、查询执行时长和上传的字节数等指标,并配置提醒政策,以便在超出阈值或配额时通知您的团队。如需了解详情,请参阅 使用 Cloud Monitoring 监控 BigQuery。
防御性 SQL 函数和调试语句
为防止查询因运行时数据错误而意外失败,请使用以下内容:
- 安全表达式。使用
SAFE_CAST()、SAFE_DIVIDE()、SAFE_OFFSET()和SAFE_ORDINAL()返回NULL,而不是在数据类型或数组边界不匹配时生成运行时错误。大多数标量函数都支持SAFE.前缀。如需了解详情,请参阅 调试函数 和SAFE.前缀。 - SQL 断言。在多语句事务或脚本中使用
ASSERT语句,以强制执行数据验证条件,并在下游操作执行之前使用自定义错误消息失败。如需了解详情,请参阅 调试语句。
按问题类别排查问题
从以下部分中选择一个类别,查看详细的错误代码、根本原因和分步问题解决指南。
查询性能和执行
诊断无法运行、超时、遇到资源限制或出现意外延迟的查询。
- 排查查询问题。解决
resourcesExceeded错误、查询执行速度缓慢、Shuffle 溢出、内存不足情况和计划查询失败问题。 - 排查查询队列时间过长的问题。 诊断并发瓶颈以及因交互式队列或批量队列限制而排队的查询。
- 出错提示参考文档。查找特定的 HTTP 错误代码、错误原因字符串和建议的操作。
Identity and Access Management (IAM) 和安全性
诊断访问权限控制失败、缺少角色分配和数据治理政策阻止。
- 排查 BigQuery 中的 IAM 权限问题。 诊断权限被拒绝错误、授予缺失的 IAM 角色,并使用政策问题排查工具。
- 排查 VPC Service Controls 问题。 找出并解决边界违规以及入站或出站规则阻止。
- 排查行级和列级安全性问题。 解决与数据政策、政策标记和行访问权限过滤条件相关的访问权限问题。
配额、速率限制和预留
解决工作负载超出 BigQuery 服务限制或容量分配时出现的问题。
- 排查配额和限制错误。 找出可调整和不可调整的配额、处理并发查询限制,并解决 API 速率限制错误。
- 排查 BigQuery 工作负载管理问题。 诊断槽资源不足、预留分配不匹配、容量承诺延迟、槽争用和预留监控问题。
数据注入、流式处理和转移
诊断加载数据、流式处理记录或同步外部来源时出现的失败。
- 排查数据转移问题。 诊断 BigQuery Data Transfer Service 问题、专用转移的网络连接和 CSV 数据加载错误。
- 排查转移作业 配置问题。解决 BigQuery Data Transfer Service 在 Amazon Simple Storage Service (Amazon S3)、Salesforce、Google Ads 和 Cloud Storage 等来源中的服务配置错误。
- 排查 BigQuery Storage API 问题。 调试 BigQuery Storage Read API、BigQuery Storage Write API (gRPC) 和 BigQuery Storage Write API (REST) 流式注入失败、行级插入错误和吞吐量配额。
数据仓库迁移
诊断评估、转换或将外部数据仓库迁移到 BigQuery 时出现的问题。
- 排查迁移问题。 解决迁移评估错误、交互式和批量 SQL 转换问题以及元数据提取失败问题。
外部数据源和联合查询
诊断在 BigQuery 外部查询数据时出现的连接、身份验证和执行错误。
- 排查 Cloud SQL 联合查询问题。 解决连接超时、实例配置问题和凭据失败问题。
结算和费用差异
调查计算和存储方面的意外费用和结算差异。
- 排查 BigQuery 费用差异问题。 找出意外费用的来源、分析按需结算的字节数,并验证容量承诺使用情况。
缓解数据丢失
如需恢复已更改或删除的历史数据,或在区域服务中断期间保持业务连续性,请使用以下灾难恢复和数据保留工具:
- 恢复数据。查询或恢复在时间旅行窗口内更改或删除的表数据。如需了解详情,请参阅 恢复数据。
- 时间旅行。在数据集中保留已更新或删除的数据,保留期限为配置的期限,以帮助防止意外修改。如需了解 详情,请参阅时间旅行。
- 区域故障切换。在使用 BigQuery 托管式灾难恢复时,在区域服务中断期间将辅助副本提升为主副本。如需了解详情,请参阅 区域故障切换。
使用 API
以编程方式与 BigQuery 交互时,请使用以下资源来优化请求延迟时间和管理上传工作流:
- API 性能提示。遵循 API 调用最佳实践,例如管理连接池、使用批量操作和处理重试。如需了解详情,请参阅 API 性能提示。
- API 上传。使用 REST API 可恢复上传请求和多部分上传请求排查和管理数据注入。如需了解详情,请参阅 API 上传。
身份验证和 ADC
如需帮助排查使用 应用默认凭据 (ADC) 时可能会遇到的常见问题,请参阅 排查 ADC 设置问题。
后续步骤
- 详细了解如何监控 BigQuery。
- 探索 BigQuery
INFORMATION_SCHEMA参考文档。 - 如需获得有关持续性或关键生产问题的支持,请与 Cloud Customer Care 联系。