疑難排解簡介
本文將概述可用的診斷工具、遙測介面和說明文件資源,協助您排解 BigQuery 的問題。
如果遇到查詢失敗、效能瓶頸、權限錯誤、配額限制或資料擷取問題,BigQuery 內建的工具可協助您找出根本原因並快速解決問題。
排解工作流程問題
如要有效排解 BigQuery 中的問題,請考慮下列診斷條件:
- 找出症狀和故障模式。查看工作結果,判斷問題是嚴重失敗 (例如錯誤代碼或工作失敗)、效能降低 (例如查詢速度緩慢或配額不足)、權限遭拒,還是費用差異超出預期。
- 檢查工作執行作業詳細資料。使用 Google Cloud 控制台工作探索器、查詢執行圖表或指令列工具,檢查階段層級的時間、配額分配和錯誤詳細資料。您也可以要求 Gemini Cloud Assist 調查問題。
- 分析遙測和中繼資料。查詢資訊結構定義檢視畫面,或檢查 Cloud 稽核記錄,將工作行為與資源爭用、預留限制或管理變更建立關聯。
- 套用目標式緩解措施。使用特定類別的疑難排解指南或防禦性 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,查詢作業、容量、串流擷取和資料集的即時和歷來中繼資料。這些檢視畫面包括:
- 工作執行遙測。查詢
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 稽核記錄
- Cloud 稽核記錄。查看「管理員活動」和「資料存取」稽核記錄,追蹤特定作業的發起者、檢查呼叫端身分,以及診斷
PERMISSION_DENIED錯誤。詳情請參閱 BigQuery 稽核記錄參考資料。 - Cloud Monitoring。追蹤指標,例如時段用量、查詢執行時間和上傳的位元組數,並設定快訊政策,在超過門檻或配額時通知團隊。詳情請參閱「使用 Cloud Monitoring 監控 BigQuery」。
防禦性 SQL 函式和偵錯陳述式
為避免查詢因執行階段資料錯誤而意外失敗,請使用下列項目:
- 安全運算式。當資料型別或陣列界限不符時,請使用
SAFE_CAST()、SAFE_DIVIDE()、SAFE_OFFSET()和SAFE_ORDINAL()傳回NULL,而不是產生執行階段錯誤。大多數純量函式都支援SAFE.前置字串。詳情請參閱「偵錯函式」和「SAFE.前置字元」。 - SQL 斷言。在多重陳述式交易或指令碼中使用
ASSERT陳述式,強制執行資料驗證條件,並在執行下游作業前,以自訂錯誤訊息失敗。詳情請參閱「偵錯陳述式」。
依問題類別排解問題
從下列章節選取類別,即可查看詳細的錯誤代碼、根本原因和逐步解決指南。
查詢效能和執行
診斷無法執行、逾時、遇到資源限制或發生非預期延遲的查詢。
- 排解查詢相關問題。解決
resourcesExceeded錯誤、查詢執行速度緩慢、隨機溢出、記憶體不足狀況,以及排定查詢失敗的問題。 - 排解查詢佇列時間過長的問題。 診斷並行瓶頸,以及因互動式或批次佇列限制而排入佇列的查詢。
- 錯誤訊息參考資料。查詢特定 HTTP 錯誤代碼、錯誤原因字串和建議的動作。
身分與存取權管理 (IAM) 和安全性
診斷存取控管失敗、缺少角色指派,以及資料治理政策封鎖等問題。
- 排解 BigQuery 中的 IAM 權限問題。 診斷權限遭拒錯誤、授予缺少的 IAM 角色,以及使用政策疑難排解工具。
- 排解 VPC Service Controls 問題。 找出並解決周邊違規事項,以及輸入或輸出規則區塊。
- 排解資料列和資料欄層級安全防護機制的問題。 解決與資料政策、政策標記和資料列存取篩選器相關的存取權問題。
配額、頻率限制和預留項目
解決工作負載超出 BigQuery 服務限制或容量分配的問題。
資料擷取、串流和轉移
診斷載入資料、串流記錄或同步處理外部來源時發生的失敗情形。
- 排解移轉設定問題。 解決 Amazon S3、Salesforce、Google Ads 和 Cloud Storage 等來源的 BigQuery 資料移轉服務錯誤。
- 排解串流資料插入問題。 偵錯 Storage Write API 和舊版串流擷取失敗、資料列層級插入錯誤,以及總處理量配額。
- 排解資料載入問題。 解決 CSV、JSON、Parquet 或 Avro 結構定義剖析和分隔符號錯誤。
外部資料來源和聯合查詢
查詢 BigQuery 以外的資料時,診斷連線、驗證和執行錯誤。
- 排解 Cloud SQL 聯合查詢問題。 解決連線逾時、執行個體設定問題和憑證失敗等問題。
帳單和費用差異
調查運算和儲存空間的非預期費用和帳單差異。
- 排解 BigQuery 費用差異問題。 找出非預期費用的來源、分析計費的隨選位元組,以及確認容量承諾用量。
減少資料遺失
如要復原已變更或刪除的歷來資料,或在區域服務中斷期間維持業務持續運作,請使用下列災難復原和資料保留工具:
- 還原資料。查詢或還原在時間範圍內變更或刪除的資料表資料。詳情請參閱「還原資料」。
- 時間回溯。在資料集中保留更新或刪除的資料,保留期限可自行設定,有助於防止資料遭到意外修改。詳情請參閱「時空旅行」。
- 區域容錯移轉。使用 BigQuery 代管災難復原時,在區域性中斷期間將次要副本升級為主要角色。詳情請參閱「區域容錯移轉」。
使用 API
以程式輔助方式與 BigQuery 互動時,請使用下列資源,盡可能縮短要求延遲時間並管理上傳工作流程:
- API 效能提示。遵循 API 呼叫最佳做法,例如管理連線集區、使用批次作業及處理重試。詳情請參閱 API 效能提示。
- API 上傳作業。使用 REST API 可續傳和多部分上傳要求,排解及管理資料擷取作業。詳情請參閱「API 上傳」。
後續步驟
- 進一步瞭解如何監控 BigQuery。
- 瀏覽 BigQuery
INFORMATION_SCHEMA參考資料。 - 如要取得持續性或重大生產問題的支援服務,請與 Cloud Customer Care 聯絡。