疑難排解簡介

本文將概述可用的診斷工具、遙測介面和說明文件資源,協助您排解 BigQuery 的問題。

如果遇到查詢失敗、效能瓶頸、權限錯誤、配額限制或資料擷取問題,BigQuery 內建的工具可協助您找出根本原因並快速解決問題。

排解工作流程問題

如要有效排解 BigQuery 中的問題,請考慮下列診斷條件:

  1. 找出症狀和故障模式。查看工作結果,判斷問題是嚴重失敗 (例如錯誤代碼或工作失敗)、效能降低 (例如查詢速度緩慢或配額不足)、權限遭拒,還是費用差異超出預期。
  2. 檢查工作執行作業詳細資料。使用 Google Cloud 控制台工作探索器查詢執行圖表指令列工具,檢查階段層級的時間、配額分配和錯誤詳細資料。您也可以要求 Gemini Cloud Assist 調查問題。
  3. 分析遙測和中繼資料。查詢資訊結構定義檢視畫面,或檢查 Cloud 稽核記錄,將工作行為與資源爭用、預留限制或管理變更建立關聯。
  4. 套用目標式緩解措施。使用特定類別的疑難排解指南或防禦性 SQL 函式,修正根本原因。

區分疑難排解和最佳化

使用 BigQuery 時,請務必區分疑難排解、效能最佳化和最佳做法:

  • 疑難排解。著重於診斷及解決意外失敗、執行階段錯誤、管道中斷、配額用盡或非預期行為,避免工作無法順利完成。
  • 效能最佳化。著重於提升已順利執行的查詢和工作負載的執行速度、延遲或資源效率。詳情請參閱「最佳化查詢效能」。
  • 最佳做法。著重於資料建模、儲存、安全性和成本管理的架構與設計模式。詳情請參閱「最佳做法簡介」。

診斷工具

以下各節說明多種 BigQuery 介面和自動化工具,可協助您診斷工作負載的問題。

視覺化和控制台工具

下列工具可協助您從Google Cloud 控制台排解 BigQuery 問題。

  • 工作探索工具。您可以在專案或機構中搜尋、篩選及檢查過去和正在執行的工作,無須撰寫 SQL 查詢。您可以查看錯誤訊息、時段用量、執行時間表和工作的中繼資料。 詳情請參閱「在 Jobs Explorer 中監控工作」。
  • 查詢執行圖表。檢查查詢的視覺化階段式執行計畫。執行圖表可協助您找出瓶頸,例如溢出至磁碟的重組作業、受運算限制的階段、資料偏斜,或是輸入/輸出延遲。詳情請參閱「取得查詢效能深入分析」。
  • 查詢洞察和資源圖表。查看時段使用率、工作並行數和預留資源分配的即時和歷史圖表,診斷容量限制。詳情請參閱「使用管理資源圖表」。
  • BigQuery 中的 Gemini Cloud Assist。取得查詢失敗和效能瓶頸的背景資訊,並運用 AI 輔助分析。 Gemini Cloud Assist 會在Google Cloud 控制台中說明錯誤代碼、標示有問題的 SQL 語法,並建議修正步驟。詳情請參閱「使用 Gemini Cloud Assist 解決查詢問題」。

指令列和自動診斷工具

下列工具可協助您透過指令列介面診斷 BigQuery 問題。

  • bq 指令列工具。使用 bq show -j <var>JOB_ID</var> 指令或在查詢指令中加入 --format=prettyjson 旗標,即可檢查詳細的錯誤結構、要求 ID 和工作的中繼資料。詳情請參閱「排解 CLI 指令問題」。
  • gcpdiag工具。從指令列執行自動診斷,偵測常見的設定問題,包括 IAM 權限缺口、網路限制和服務帳戶錯誤。 Google Cloud 詳情請參閱「使用 gcpdiag 排解查詢失敗問題」。

中繼資料和遙測檢視畫面

資訊結構定義檢視畫面可讓您使用標準 SQL,查詢作業、容量、串流擷取和資料集的即時和歷來中繼資料。這些檢視畫面包括:

詳情請參閱 BigQuery 簡介 INFORMATION_SCHEMA

Cloud Monitoring 和 Cloud 稽核記錄

  • Cloud 稽核記錄。查看「管理員活動」和「資料存取」稽核記錄,追蹤特定作業的發起者、檢查呼叫端身分,以及診斷 PERMISSION_DENIED 錯誤。詳情請參閱 BigQuery 稽核記錄參考資料
  • Cloud Monitoring。追蹤指標,例如時段用量、查詢執行時間和上傳的位元組數,並設定快訊政策,在超過門檻或配額時通知團隊。詳情請參閱「使用 Cloud Monitoring 監控 BigQuery」。

防禦性 SQL 函式和偵錯陳述式

為避免查詢因執行階段資料錯誤而意外失敗,請使用下列項目:

  • 安全運算式。當資料型別或陣列界限不符時,請使用 SAFE_CAST()SAFE_DIVIDE()SAFE_OFFSET()SAFE_ORDINAL() 傳回 NULL,而不是產生執行階段錯誤。大多數純量函式都支援 SAFE. 前置字串。詳情請參閱「偵錯函式」和「SAFE. 前置字元」。
  • SQL 斷言。在多重陳述式交易或指令碼中使用 ASSERT 陳述式,強制執行資料驗證條件,並在執行下游作業前,以自訂錯誤訊息失敗。詳情請參閱「偵錯陳述式」。

依問題類別排解問題

從下列章節選取類別,即可查看詳細的錯誤代碼、根本原因和逐步解決指南。

查詢效能和執行

診斷無法執行、逾時、遇到資源限制或發生非預期延遲的查詢。

身分與存取權管理 (IAM) 和安全性

診斷存取控管失敗、缺少角色指派,以及資料治理政策封鎖等問題。

配額、頻率限制和預留項目

解決工作負載超出 BigQuery 服務限制或容量分配的問題。

  • 排解配額和限制錯誤 找出可調整和不可調整的配額、處理並行查詢限制,以及解決 API 速率限制錯誤。
  • 排解預訂問題 診斷時段資源不足、預約指派不符,以及基準容量不足的問題。

資料擷取、串流和轉移

診斷載入資料、串流記錄或同步處理外部來源時發生的失敗情形。

  • 排解移轉設定問題 解決 Amazon S3、Salesforce、Google Ads 和 Cloud Storage 等來源的 BigQuery 資料移轉服務錯誤。
  • 排解串流資料插入問題 偵錯 Storage Write API 和舊版串流擷取失敗、資料列層級插入錯誤,以及總處理量配額。
  • 排解資料載入問題 解決 CSV、JSON、Parquet 或 Avro 結構定義剖析和分隔符號錯誤。

外部資料來源和聯合查詢

查詢 BigQuery 以外的資料時,診斷連線、驗證和執行錯誤。

帳單和費用差異

調查運算和儲存空間的非預期費用和帳單差異。

減少資料遺失

如要復原已變更或刪除的歷來資料,或在區域服務中斷期間維持業務持續運作,請使用下列災難復原和資料保留工具:

  • 還原資料。查詢或還原在時間範圍內變更或刪除的資料表資料。詳情請參閱「還原資料」。
  • 時間回溯。在資料集中保留更新或刪除的資料,保留期限可自行設定,有助於防止資料遭到意外修改。詳情請參閱「時空旅行」。
  • 區域容錯移轉。使用 BigQuery 代管災難復原時,在區域性中斷期間將次要副本升級為主要角色。詳情請參閱「區域容錯移轉」。

使用 API

以程式輔助方式與 BigQuery 互動時,請使用下列資源,盡可能縮短要求延遲時間並管理上傳工作流程:

  • API 效能提示。遵循 API 呼叫最佳做法,例如管理連線集區、使用批次作業及處理重試。詳情請參閱 API 效能提示
  • API 上傳作業。使用 REST API 可續傳和多部分上傳要求,排解及管理資料擷取作業。詳情請參閱「API 上傳」。

後續步驟