疑難排解簡介
本文將概略介紹可用的診斷工具、遙測介面和說明文件資源,協助您排解 BigQuery 問題。
如果遇到查詢失敗、效能瓶頸、權限錯誤、配額限制或資料擷取問題,BigQuery 內建的工具可協助您找出根本原因並快速解決問題。
排解工作流程問題
如要有效排解 BigQuery 中的問題,請考慮下列診斷條件:
- 找出症狀和故障模式。請查看工作結果,判斷問題是嚴重失敗 (例如錯誤代碼或工作失敗)、效能降低 (例如查詢速度緩慢或空位不足)、權限遭拒,還是費用差異超出預期。
- 檢查工作執行作業詳細資料。使用 Cloud de Confiance 控制台作業探索工具、查詢執行圖表或指令列工具,檢查階段層級的時間、時段分配和錯誤詳細資料。您也可以要求 Gemini Cloud Assist 調查問題。
- 分析遙測和中繼資料。查詢資訊結構定義檢視區塊,或檢查 Cloud 稽核記錄,將工作行為與資源爭用、預留限制或管理變更建立關聯。
- 套用目標緩解措施。請參閱特定類別的疑難排解指南,或使用防禦性 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 查詢作業、容量、串流擷取和資料集相關的即時和歷來中繼資料。這些檢視畫面包括:
- 工作執行遙測。查詢
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 服務限制或容量分配的問題。
- 排解配額和限制錯誤。 找出可調整和不可調整的配額、處理並行查詢限制,以及解決 API 速率限制錯誤。
- 排解 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 以外的資料時,診斷連線、驗證和執行錯誤。
- 排解 Cloud SQL 聯合查詢問題。 解決連線逾時、執行個體設定問題和憑證失敗等問題。
帳單和費用差異
調查運算和儲存空間的非預期費用和帳單差異。
- 排解 BigQuery 費用差異問題。 找出非預期費用的來源、分析計費的隨選位元組,以及驗證承諾容量的使用情況。
資料損失緩解
如要復原已變更或刪除的歷來資料,或在區域服務中斷期間維持業務持續性,請使用下列災難復原和資料保留工具:
- 還原資料:查詢或還原時間回溯期內變更或刪除的資料表資料。詳情請參閱「還原資料」。
- 時間回溯。在資料集中保留更新或刪除的資料,保留期限可自行設定,有助於防止資料遭意外修改。詳情請參閱「時空旅行」。
- 區域容錯移轉。使用 BigQuery 代管災難復原時,如果發生區域性中斷,您可以將次要副本升級為主要角色。詳情請參閱「區域容錯移轉」。
使用 API
以程式輔助方式與 BigQuery 互動時,請使用下列資源來縮短要求延遲時間,並管理上傳工作流程:
- API 效能提示,請遵循 API 呼叫最佳做法,例如管理連線集區、使用批次作業,以及處理重試。詳情請參閱「API 效能提示」。
- API 上傳。使用 REST API 可續傳和多部分上傳要求,排解及管理資料擷取作業。詳情請參閱「API 上傳」。
後續步驟
- 進一步瞭解如何監控 BigQuery。
- 瀏覽 BigQuery
INFORMATION_SCHEMA參考資料。 - 如要取得持續性或重大製作問題的支援服務,請與 Cloud Customer Care 聯絡。