深刻MaxCompute理解數據、運算和用戶的大腦:基於代價的優化器

回顧大數據技術領域大事件,最先可追溯到06年Hadoop的正式啓動,而環顧四下,圍繞着數據庫及數據處理引擎,業內充斥着各類各樣的大數據技術。這是個技術人的好時代,僅數據庫領域熱門DB就有300+,圍繞着Hadoop生態圈的大數據處理技術更是繁花似錦。在雲棲社區2017在線技術峯會大數據技術峯會上,阿里雲大數據計算平臺架構師林偉作了題爲《MaxCompute的大腦:基於代價的優化器》的分享,爲你們分享阿里巴巴大數據計算服務的大腦——基於代價的優化器的設計和架構。數據庫


MaxCompute簡介
大數據計算服務(MaxCompute)是一種快速、徹底託管的PB/EB級數據倉庫解決方案,MaxCompute具有萬臺服務器擴展能力和跨地域容災能力,是阿里巴巴內部核心大數據平臺,承擔了集團內部絕大多數的計算任務,支撐每日百萬級做業規模。MaxCompute向用戶提供了完善的數據導入方案以及多種經典的分佈式計算模型,可以更快速的解決用戶海量數據計算問題,有效下降企業成本,並保障數據安全。安全

MaxCompute的研發思路主要分爲如下四個方面:

服務器

高性能、低成本和大規模。但願打造的MaxCompute平臺可以提運算的高性能,儘量下降用戶的使用成本,而且在規模上面可以達到萬臺機器以及多集羣的規模。架構

穩定性,服務化。但願MaxCompute平臺可以提供穩定性和服務化的方式,使得用戶不用過多地考慮分佈式應用的難度,而只須要注重於用戶須要進行什麼樣的計算,讓系統自己服務於用戶,並可以提供穩定性,服務化的接口。機器學習

易用性,服務於數據開發者。但願MaxCompute平臺是易用的,而且可以很方便地服務於數據開發工程師,不須要數據工程師對於分佈式的場景進行很深的理解,而只要關注於須要用這些數據進行什麼樣的運算就能夠,接下來就是由MaxCompute平臺幫助數據開發工程師高效而且低成本地執行本身的想法。分佈式

多功能。但願MaxCompute可以具備更多的功能,不單單是支持流計算、圖計算、批處理和機器學習等,而但願更多種類的計算可以在MaxCompute平臺上獲得更好的支持。oop

MaxCompute的大腦——優化器
基於以上的研發思路,MaxCompute平臺須要擁有一個更增強大的大腦,這個大腦須要更加理解用戶的數據,更加理解用戶的計算,而且更加理解用戶自己,MaxCompute的大腦須要可以幫助用戶更加高效地優化運算,經過系統層面去理解用戶到底須要進行什麼樣的運算,從而達到以前提到的各類目的,使得用戶可以從分佈式場景中脫離出來,沒必要去考慮如何才能使得運算高效地執行,而將這部分工做交給MaxCompute的大腦,讓它來爲用戶提供更智能的平臺,這也就是MaxCompute所可以爲用戶帶來的價值。性能

那麼MaxCompute的大腦到底是什麼呢?其實就是優化器。優化器可以將全部信息串聯在一塊兒,經過理解系統中數據的相關性以及用戶的企圖,並經過機器的能力去充分地分析各類各樣的環境,在分佈式場景中以最高效的方式實現對於用戶運算的執行。在本次分享中以離線計算做爲主要例子來對於MaxCompute的大腦——優化器進行介紹。學習

首先對於離線計算的概念進行簡單介紹,MaxCompute離線計算架構設計如上圖所示。在計算層面每每會存在一個相似高級語言的腳本語言,MaxCompute提供的是類SQL的腳本語言,將腳本語言經過FrontEnd提交進來,以後通過處理轉化成爲邏輯執行計劃,邏輯執行計劃在Optimizer(優化器)的指導下翻譯成更加高效的物理執行計劃,並經過與Runtime的鏈接以後由伏羲分佈式調度系統將物理執行計劃分解到運算節點上進行運算。

上述過程的核心就在於如何充分地理解用戶的核心計劃並經過優化獲得高效的物理執行計劃,這樣的過程就叫作優化器Optimizer。目前開源社區內的Hive以及Spark的一些優化器基本上都是基於規則的優化器,其實對於優化器而言,單機系統上就存在這樣的分類,分紅了基於規則的優化器和基於代價的優化器。大數據

全文點擊:http://click.aliyun.com/m/13440/  

相關文章
相關標籤/搜索