254
汽車大全
性能追求之路——MaxCompute2.0的前世今生
在2017雲棲大會·深圳峰會大數據專場,阿裏雲高級專家雲郎分享了《大數據計算服務MaxCompute產品最新動態》。他首先介紹了MaxCompute的發展曆程和技術架構,然後對MaxCompute 2.0版本新特性和新技術進行了詳細介紹。最後,分享了基於MaxCompute平台構建完整大數據應用架構、構建新型數據倉庫、實現個性化推薦的實踐。
本文根據直播視頻整理而成。
首先看三個簡單的問題。在阿裏內部已經有了30多個業務單元,是一個典型的數據驅動公司。數據在整個業務創新、業務變更的過程中起了非常重要的作用。所以,是什麼技術支撐了阿裏巴巴集團內部的數據計算要求?經曆了很多次雙十一,雙11背後的大數據平台是什麼?在阿裏雲,第1個運行在阿裏雲飛天平台上的雲服務是什麼?答案非常簡單,就是阿裏雲大數據平台MaxCompute。
MaxCompute
MaxCompute是阿裏雲提供的從GB到EB級的、免運維的、安全可靠的數據倉庫平台。作為雲服務,MaxCompute具有幾個顯著的特點:開通即用,這是所有雲服務的特點,非常便利;在雲上,借助於大規模的規模效應帶來的高性能、低成本;數據安全、可靠;支持多種分布式計算模型,計算架構發展到今天,沒有一種架構能夠滿足所有的場景,MaxCompute可以做離線計算、批量計算,學習能力強;兼容生態開放,提供了眾多接口和生態的工具。
發展曆程
上圖是MaxCompute的發展曆程,阿裏雲是2009年成立的,當時的願景是要做運算和分享數據的第一平台。2010年,自主研發的MaxCompute作為數據倉庫平台正式上線。2012年,開始搭建集團統一的數據平台,提供統一的數據存儲、計算、分享。2013年,整個數據的規模指數級的增長,推出了具備5K集群能力的飛天平台。2014-2015年,“雙十一”交易過程中,逐漸成為了共享倉庫的數據平台。2016年,推出了MaxCompute 2.0,帶來了新的特性。
技術架構
上圖是MaxCompute的技術架構。最下麵一層是物理機器,MaxCompute有自己的物理集群,在集群之上有非常重要的能力:它把一個集群組織成了1萬台計算機,MaxCompute 2.0很大的特性是集群能力得到了擴展,從5千變成了1萬。黑色部分是飛天操作係統,提供整個分布式係統任務協同、資源管理、集群調度等功能,為上層雲產品提供統一的操作係統服務。其上是MaxCompute統一的計算引擎,支持SQL、MR、迭代計算、圖計算、流計算。
MaxCompute的特性
MaxCompute的特性如上圖所示。
從上圖可以看出,截止到目前,MaxCompute獲得了廣泛應用。在阿裏巴巴內部,其支持了所有的BU,所有的數據倉庫、數據平台都是共享在MaxCompute之上的。在開發者社區,吸引了超過8000+的開發者。眾多的應用和數據也在MaxCompute上。並且,有眾多的內外客戶都在使用MaxCompute。
MaxCompute 2.0
最新推出的MaxCompute 2.0的新性能如上圖所示。高性能方麵主要依托於全新的SQL 2.0計算引擎。在新功能方麵提供了非結構化的處理,在雲上開始使用OSS(開放的對象存儲)、OTS(開放的表格存儲),MaxCompute對其進一步分析和計算提供了連接性。機器學習在新版本中提出了CPU和GPU統一的架構,在富生態中也提出了新的能力。
全新的SQL 2.0引擎
在編譯器方麵,基於AST的編譯器模型,Visitor模型(Antlrv4),IDE IntelliSense,Warning支持完整的存儲過程,LOOP/IFELSE判斷等;在優化器方麵,CBO基於代價的優化器,Volcano模型,展開各種可能等價的執行計劃,然後依賴統計信息,計算這些等價執行計劃的“代價”,最後最低的執行計劃;在運行時方麵,利用LLVM技術,在運行時生成較優的機器碼,采用列式執行框架,提高CPU流水線的執行效率,並提高緩存命中率,使用SIMD。
上圖是全球公認的Sort Benchmark測試結果。2015年,MaxCompute打破世界紀錄,獲得“速度最快計算引擎”稱號。2016年,逐漸降低計算成本,並打破世界紀錄。
非結構化數據處理框架
在雲上,OSS、OTS存儲非結構化數據情況變多,比如在OSS上存儲視頻、音頻、圖像,在OTS上存儲文本、標簽等。我們希望在這個過程中能夠進行進一步的計算,比如希望OSS存儲的CSB文本文件能夠在MaxCompute上直接對其進行計算。再比如,在OSS上存儲的大量音頻文件按照表的方式對其進行處理,對音軌進行分析,進而把分析結果結構化寫到MaxCompute裏,這樣就完成了非結構化數據到結構化數據的轉換。MaxCompute 2.0提供了外部表的方式,可以將OSS上的bucket映射成一個外部表來進行表式的處理。OTS也類似。
社區兼容與生態連接
對數據做了基本的加工處理之後,更多的處理要依賴生態工具。阿裏雲MaxCompute從三個層麵提供開放方案。
MaxCompute多租戶機製
數據安全是上雲前需要慎重考慮的事情。MaxCompute從剛開始就麵對多個BU、多個項目要安全共享數據的天然訴求,沉澱了一整套更細粒度的授權體係。基於項目的方式,讓更多的安全得到控製的一個非常重要的原則是最小化原則:僅僅授權給最小需要數據的人,在企業裏做到權責分離。上圖中,中間的project可以認為是MaxCompute擁有的數據庫,下麵可以有多個部門去使用,但是通過不同的授權方式讓不同的部門得到合理的授權,確保數據安全的權限下發到最小的部門。右下角的共享數據是所有部門都可以看到的。
高性能帶來了低成本的優勢,上圖展示了MaxCompute和一款EMR產品的對比。
MaxCompute應用
構建完整的大數據應用架構
整個架構分為五個部分,包括數據采集、數據集成、數據開發、數據運維、數據應用的工具。基於阿裏雲數加平台,怎麼構建完整的大數據應用架構呢?首先得支持各種數據源,得有統一的、一站式的大數據開發工具來為我們提供數據開發、數據運維、治理等。此外,基於雲服務有插件管理工具、大數據計算服務為我們提供計算引擎、數倉共享平台,實現數倉應用。
上圖詳細介紹了五部分中阿裏雲提供的產品所屬的位置。MaxCompute處於整個計算平台的核心位置。其前麵提供了基於雲上數據、雲下數據通過各種開放的方式集成到阿裏雲中、進行統一管理。Data IDE也為我們提供三個方麵的能力支持。最後是推薦、BI報表分析、個性化展現的部分。
構建新型數據倉庫
數據來源是基於阿裏雲的ECS、RDS、OSS,通過VPC和現有的數據中心打通,通過Data IDE的數據管理功能同步上來做數據倉庫,進一步來做開發。MaxCompute區別於其他大數據平台,其SQL功能是內置的。
實現個性化推薦
在各種手機APP上,都有推薦功能。借助於機器學習,加上MaxCompute和推薦引擎就能一起構建個性化推薦方案。
使用效果
在阿裏雲上,已經有眾多的客戶使用MaxCompute,並且獲益。
總結
最後更新:2017-05-18 23:00:59