疑難排解簡介

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

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

排解工作流程問題

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

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

區分疑難排解和最佳化

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

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

診斷工具

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

視覺化和控制台工具

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

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

指令列和自動診斷工具

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

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

資料擷取、串流和轉移

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

  • 排解資料轉移問題。 診斷 BigQuery 資料移轉服務問題、私有移轉的網路連線,以及 CSV 資料載入錯誤。
  • 排解轉移設定問題。解決 Amazon Simple Storage Service (Amazon S3)、Salesforce、Google Ads 和 Cloud Storage 等來源的 BigQuery 資料移轉服務設定錯誤。
  • 排解 BigQuery Storage API 問題。 偵錯 BigQuery Storage Read API、BigQuery Storage Write API (gRPC) 和 BigQuery Storage Write API (REST) 的串流擷取失敗、資料列層級插入錯誤和輸送量配額。

遷移資料倉儲

診斷評估、轉換或遷移外部資料倉儲至 BigQuery 時發生的問題。

  • 排解遷移問題。 解決遷移評估錯誤、互動式和批次 SQL 轉譯問題,以及中繼資料擷取失敗問題。

外部資料來源和聯合查詢

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

帳單和費用差異

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

資料損失緩解

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

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

使用 API

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

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

後續步驟