Shuffle優化利器|聚簇優化推薦
在MaxCompute每日EB級規模的計算場景中,Join、Group By、Window等算子所產生的Shuffle數據流量已佔據整體網絡傳輸的60%以上,成為影響大數據計算成本的核心因素。以阿里內部某業務為例,單日Shuffle數據量高達2 PB,直接消耗7000+ CU資源——這一數字僅是問題的冰山一角。
MaxCompute 哈希聚簇(Hash Clustering)表功能通過設置表的Shuffle和Sort屬性,可對數據進行重新組織與排列,從而在後續的數據處理鏈路中顯著減少IO消耗,加速查詢與計算任務的執行,進而提升整體作業效率並降低資源使用成本。
然而,在業務初期,很多表並未預先定義Hash Cluster。隨着業務規模的不斷擴大和數據消費鏈路的日益複雜,回溯進行數據治理將面臨巨大的挑戰,需要基於詳盡的歷史數據統計與分析才能做出科學的治理決策。
為幫助用户更高效地優化數據處理流程,MaxCompute全新推出了聚簇優化推薦功能。該功能基於 31 天曆史運行數據,每日自動輸出全局最優 Hash Cluster Key,對於10 GB以上的大型Shuffle場景,這一功能將直接帶來顯著的成本優化。
實測成果|技術揭秘
聚簇優化推薦功能已在阿里內部得到廣泛應用,並取得了顯著的優化效果。我們相信,隨着更多業務採用這一推薦方案,將能夠實現整體業務的大幅提速,釋放數據處理的無限潛能。
那麼,為什麼聚簇優化推薦功能能夠帶來如此顯著的成本節省?讓我們為您揭秘這一功能的核心優勢:
- 全局 DAG 感知:該功能能夠一次性分析橫跨數千作業的 Shuffle 依賴圖,幫助我們全面瞭解數據流動的全局性問題,從而精準定位優化方向。
- 動態傾斜檢測:提前識別熱點 key,避免「優化後更慢」的情況發生,確保優化方案的穩定性和高效性。
- 智能收益評估:通過智能算法,功能僅對「高 Shuffle + 低風險」的表提供改造建議,避免無效改造,確保優化建議的高效性和可靠性。
- 一鍵腳本生成:自動輸出 ALTER TABLE 語句,並提供回滾方案,極大簡化了用户操作流程,讓用户能夠快速、安全地實施優化。
這一功能不僅能夠顯著降低 Shuffle 場景的成本,更能為您的業務帶來更快的查詢速度和更高的資源利用率。
快速使用聚簇優化推薦
聚簇優化推薦功能已在阿里雲MaxCompute控制枱上正式發佈,您可輕鬆查看和使用,只需三步即可完成推薦方案的應用。通過智能化和自動化的分析,該功能能夠幫助您快速完成優化治理,提升作業效率。
- 查看推薦列表並應用推薦。
- 登錄 MaxCompute 控制枱 → 智能優化→ 數據排布優化 → 聚簇優化。
通過預估收益查看待優化的推薦列表,通過這個推薦列表您可以明確瞭解什麼項目的什麼表,可以把哪個列作為ClusterKey、SortKey以及Bucket的設置量,並預估出採用改推薦方案後可節省的Shuffle量。 - 選擇查看想要優化的表點擊“前往優化”進入查看更詳細的優化方案。
可以查看詳細預估可收益的相關週期作業列表,包括讀表作業、全量寫表作業、全量讀表作業。 - 點擊“應用建議”生成對應的ALTER TABLE 語句 + 回滾方案 。點擊“確認應用”直接將當前表完成Hash Cluster 轉換。
- 查看聚簇優化收益。在聚簇優化頁籤,選擇實際收益,選擇分析時間,可以查看修改過聚簇屬性的聚簇錶帶來的收益彙總和收益詳情。
- 總的收益:受益作業數主要統計最近修改的聚簇表在收益統計區間內的被讀取次數;節省的CU時是所有讀取最近修改的聚簇表的作業在收益統計區間內的CU時消耗相較於表修改為聚簇表之前CU時消耗的節省值;節省Shuffle量消耗是所有讀取最近修改的聚簇表的作業在收益統計區間內的Shuffle量消耗相較於表修改為聚簇表之前Shuffle量的節省值。
- 已優化列表:查看已經優化過的table詳細list,每個表修改時間、收益的作業數,節省的計算時長、CU時、Shuffle量。
- 查看已優化表的優化效果詳情。
更詳細的使用説明請參考文檔聚簇優化推薦>>
更多MaxCompute優化推薦
MaxCompute已經推出了一系列優化推薦能力,同時還持續不斷的挖掘並總結各種場景的改進點,未來還會繼續推出更多的優化利器:
- 優化器:支持 CASE WHEN / COALESCE 場景自動合併 Cluster Key 。
- 智能數倉:AutoMV;計算配置優化推薦;分層存儲優化推薦。未來,結合 Z-Order、Data Skipping 做聯合索引推薦 。
- 實時推薦:作業運行結束即推送下一跳優化建議 。