【透過 BigQuery 查詢執行圖優化查詢效益】

透過 BigQuery 查詢執行圖優化查詢效益

雲育鏈官方 Line@

當使用 BigQuery 查詢時,它將 SQL 語句轉換為查詢計劃,分為多個階段,每個階段由不同的執行步驟組成。每個階段都是獨特的(有些階段可能需要大量資源且耗時)。透過 BigQuery 查詢執行圖,發現這些潛在的「減速帶」是輕而易舉的事。

【Bigquery 查詢時常見問題】

1. Slot Contension(插槽爭搶)

當您運行一個查詢指令時,Bigquery 會將這個查詢工作拆分成多個可管理的任務。每個任務會被指派到 1 個 slot,理想上,並行處理可以達到最大效率。但若沒有足夠的 slot,就會出現 slot contension 問題。

2. Insufficient Shuffle Quota

當插槽中的任務完成後,插槽就會將結果立即儲存到 shuffle 中,後續的查詢階段,就會從 shuffle 中取出這些資料,但如果 shuffle 的容量不足,將會出現 Insufficient Shuffle Quota 的問題。

※若遇上以上的問題,解決方式有以下:

1. 優化查詢,以使用較少的資源

2. 分配更多的資源

3. 分配工作負載以避免峰值需求

另外,還必須檢查資料密集型連接的複雜性議題。如果您的查詢包含兩邊都帶有非唯一鍵的聯接,則最終可能會得到一個比輸入表大得多的輸出表。輸出和輸入行計數之間的這種差異表明存在明顯的偏差。

【使用情境】

在使用 BigQuery 進行複雜查詢時,手動優化有時是必要且不可避免的。由於 BigQuery 是一個複雜的分佈式系統,許多內部和外部因素可能影響查詢速度,使得理解查詢的具體情況變得複雜。

【使用實際案例】

Mercadolibre —— 一家在拉丁美洲領先的公司,每天在 BigQuery 上處理數百萬個查詢。他們表示,「查詢執行圖」幫助他們看到查詢放慢的地方,在許多情況下,它指引他們進行了優化。

【總結】

「BigQuery 查詢執行圖」是一個強大的工具,它通過將查詢計劃轉化為易於理解的圖形格式,幫助用戶理解、排查和優化分析查詢。

它不僅提供了查詢的詳細視圖,還提供了性能洞察,這些洞察像友好的提示一樣,提供了提升查詢性能的建議。此外,它還能幫助識別潛在的問題,如插槽爭用和不足的洗牌配額,並提供解決這些問題的方法。這使得 BigQuery 查詢執行圖成為了優化複雜查詢的重要工具。

原始連結

如果想知道更多雲端新知,加入我們LINE@官方號

感謝您的填寫,將有專人與您聯繫