使用資訊結構定義排解問題

身為 BigQuery 管理員或資料分析師,管理企業工作負載時,需要可靠且可擴充的方式,診斷效能瓶頸、查詢失敗、容量限制和儲存空間成長。BigQuery 資訊架構檢視區塊是可觀測性的基礎,可透過標準 GoogleSQL 查詢存取近乎即時和歷來的中繼資料。

本文將說明使用資訊結構定義排解 BigQuery 問題的核心原則,並提供管理疑難排解工具箱的結構化總覽,以及導向 BigQuery 程式庫中的特定檢視畫面。

依工作排解資訊結構定義問題

下表依工作和診斷用途分類,彙整實用的資訊結構定義檢視畫面:

工作 用途 資訊結構定義檢視畫面
查詢效能和錯誤
  • 找出耗用最多時段和費用的查詢。
  • 匯總工作錯誤原因和失敗模式。
  • 分析每個階段的執行時間和溢位位元組。
工作負載容量和爭用
  • 偵測時段爭用、節流和佇列時間。
  • 監控記憶體內重組記憶體飽和度。
  • 稽核預留項目基準和自動調度資源運算單元用量。
  • 確認專案和資料夾的保留項目指派作業。
儲存空間費用和資料架構
  • 找出實體或邏輯儲存空間用量過高的資料表。
  • 偵測時空旅行和安全儲存空間膨脹。
  • 診斷分區傾斜問題,以及即將達到分區限制的資料表。
  • 在時間旅行視窗中,探索已過期或刪除的資料表。
存取控管與治理
  • 稽核資料表和資料集上明確的身分與存取權管理 (IAM) 角色授權。
  • 排解使用者和服務帳戶的存取遭拒錯誤。
  • 追蹤跨專案資料集共用和分析使用情況。
資料擷取管道
  • 監控 Storage Write API 的擷取輸送量和錯誤。
  • 診斷串流資料即時插入延遲和頻率限制。
  • 依串流類型和錯誤代碼找出失敗的串流。
機器學習和向量搜尋
  • 追蹤模型訓練時間和資源消耗量。
  • 稽核向量索引的建構狀態和涵蓋率百分比。
  • 排解預存程序和 Python UDF 建構作業的問題。
工作負載最佳化洞察
  • 查看自動分區和分群建議。
  • 找出具體化檢視表候選資料表。

使用資訊結構定義排解問題的原則

在 BigQuery 中診斷工作負載或環境問題時,請套用下列核心原則:

  • 依區域、資料集和專案劃分範圍。 BigQuery 工作負載管理和運算資源會在區域界線內執行。請考量下列事項:

    • 請務必指定正確的區域限定符 (例如 region-REGION.INFORMATION_SCHEMA.JOBS_BY_PROJECT) 或資料集限定符。

    • 根據您要調查的是單一使用者問題、專案專屬工作負載,還是租戶層級問題,選擇適當的階層層級 (BY_PROJECTBY_USERBY_FOLDERBY_ORGANIZATION)。

  • 將運算需求與容量相互關聯。 查詢效能緩慢通常是因時段爭用所致,而非單純是 SQL 效率不彰。比較相同時間範圍內的工作資源要求 (period_estimated_runnable_units) 與已分配的預留時段 (period_slot_ms),區分查詢調整機會和容量不足導致的問題。

  • 考量遙測資料的精細度和保留期限。不同的資訊結構定義檢視畫面會以不同的重新整理間隔和資料保留時間運作。JOBS 檢視畫面中的工作中繼資料會保留 180 天,而 JOBS_TIMELINERESERVATIONS_TIMELINE 檢視畫面中的高解析度時間軸指標則會保留較短的時間 (通常為 14 到 30 天)。如要進行長期稽核和趨勢分析,請將遙測資料匯出至分區資料表。

  • 避免多重陳述式查詢中的指標失真。 多重陳述式指令碼 (包含 DECLAREIFWHILE 的程序化 SQL) 會產生父項工作 statement_type = 'SCRIPT',並為每個陳述式產生個別的子項工作。匯總 total_slot_mstotal_bytes_billed 等指標時,請篩除 statement_type = 'SCRIPT',以免重複計算。

  • 依分區資料欄篩選。 如要盡量縮短查詢執行時間,並避免在隨選分析中產生不必要的掃描費用,請務必在分區資料欄 (例如 creation_timejob_start_timeperiod_start) 中加入限制性時間篩選器。

後續步驟

  • 如要進一步瞭解資訊結構定義語法和可用檢視區塊清單,請參閱「INFORMATION_SCHEMA 簡介」。
  • 如要瞭解如何查看工作詳細資料、列出有效工作及取消執行中的工作,請參閱「管理工作」。