疑難排解簡介

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

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

排解工作流程問題

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

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

區分疑難排解和最佳化

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

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

診斷工具

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

視覺化和控制台工具

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

  • 工作探索工具。您不必編寫 SQL 查詢,就能搜尋、篩選及檢查專案或組織中過去和執行中的工作。您可以查看錯誤訊息、時段用量、執行時間軸和工作的中繼資料。 詳情請參閱「在 Jobs Explorer 中監控工作」。
  • 查詢執行圖表。檢查查詢的視覺化分階段執行計畫。執行圖表可協助您找出瓶頸,例如溢出至磁碟的重組作業、受運算限制的階段、資料偏斜或輸入/輸出延遲。詳情請參閱「取得查詢效能深入分析」。
  • 查詢洞察和資源圖表。查看運算單元使用率、工作並行和預留分配的即時和歷來圖表,診斷容量限制。詳情請參閱「使用管理資源圖表」。
  • Gemini Cloud Assist in BigQuery:取得查詢失敗和效能瓶頸的背景資訊,並透過 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,查詢工作、容量、串流擷取和資料集的即時和歷來中繼資料。這些檢視畫面包括:

詳情請參閱「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 陳述式,強制執行資料驗證條件,並在執行下游作業前,以自訂錯誤訊息失敗。詳情請參閱「偵錯陳述式」。

依問題類別排解問題

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

查詢效能和執行

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

Identity and Access Management (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 上傳」。

驗證和 ADC

如需排解使用應用程式預設憑證 (ADC) 時可能遇到的常見問題,請參閱「排解 ADC 設定問題」。

後續步驟