一個簡單的 BigQuery 查詢 `SELECT country, state, city FROM mytable GROUP BY country` 總是執行緩慢。查詢計畫顯示 Stage:1 有大量的讀取。最可能的原因是什麼?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 大多數列具有相同的 `country` 值,導致資料傾斜.
為什麼這是答案
當 BigQuery 查詢在 country 欄位上進行 GROUP BY 操作時,如果大多數列具有相同的 country 值,會導致資料傾斜 (data skew)。這表示 BigQuery 必須處理大量具有相同鍵的資料,使得某些工作節點負擔過重,而其他節點則閒置。這種不平衡會嚴重影響查詢效能,導致 Stage:1(通常是 Shuffle 階段)出現大量讀取和處理延遲。 其他選項: 同時執行的使用者查詢過多:這會影響整體系統效能,但不一定會導致特定查詢計畫的 Stage:1 讀取量異常。 該資料表有太多分割區:過多的分割區通常不會直接導致 GROUP BY 查詢的 Stage:1 讀取量大,反而可能在某些情況下幫助查詢優化。 state 或 city 欄位之一或兩者都包含許多 NULL 值:NULL 值本身不會導致資料傾斜或 Stage:1 讀取量異常,除非它們被用於 GROUP BY 且分佈極度不均。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡