摘要: 在大數據計算北京高端峯會上,阿里雲計算平臺高級專家薛明深刻介紹了阿里巴巴大數據計算平臺開發利器—MaxCompute Studio。一站式的 IDE,能夠快速完成數據瀏覽和管理、進行基於 SQL 和 UDF 的數據開發,更具有完善的做業分析和優化輔助等功能。本文帶領你們自淺入深瞭解MaxCompute Studio。編程
演講嘉賓簡介:薛明,MaxCompute高級技術專家。瀏覽器
如下內容根據演講嘉賓視頻分享以及PPT整理而成。緩存
PPT材料下載地址:https://yq.aliyun.com/download/2729服務器
視頻地址:https://edu.aliyun.com/lesson_1010_8793?spm=5176.10731542.0.0.ZRTXdt#_8793數據結構
產品地址:https://www.aliyun.com/product/odpsless
工欲善其事,必先利其器。爲了享受大數據計算服務(MaxCompute)帶來的特性,一般須要數據分析師或數據開發者將數據的價值挖掘出來,在這過程當中,咱們須要藉助一些工具,例如MaxCompute Studio,Dataworks等。通俗的來說,只要某個項目想用MaxCompute,阿里巴巴MaxCompute團隊就能爲他們提供合手的工具,再依靠MaxCompute團隊提供的強大計算力使用合理的方式將數據價值體現出來。在MaxCompute Studio出現以前,數據上傳,作UDF都是很麻煩的,這也是阿里巴巴MaxCompute團隊研究MaxCompute Studio的契機。編程語言
MaxCompute Studio是什麼?函數
下圖爲edit編輯界面,MaxCompute Studio本質上是一個IDE,如同在編寫Java程序時,會提供給一些智能提示,幫助基於上下文補全代碼。在寫代碼時,MaxCompute Studio也能夠幫助直接定位到發生錯誤的代碼。更重要的一點是,對於大型做業,若是將做業提交到服務器執行很長時間後,發現執行失敗了,而錯誤僅僅在於數據類型不匹配或語句錯誤等,這就意味着以前的這麼多數據都白跑了,這種狀況極大的影響了開發效率。對此,MaxCompute Studio能夠在本地提示致使做業執行失敗的錯誤,好比表不存在,或該列類型與所需類型不匹配等,咱們能夠實時地修改錯誤,避免循環提交執行帶來的效率低下等問題。MaxCompute Studio提供模板進行UDF開發,支持Java或者Python的邏輯代碼在統一的IDE中進行編譯,經過在本地調試,發現問題後能夠直接跳轉到相應的地方進行修改。在數據管理方面,MaxCompute Studio能preview出表的元數據,列等信息,另外,元數據能夠緩存在本地,所以支持離線處理。工具
MaxCompute Studio的幾大特徵以下圖所示。咱們都但願工具可以快速解決本身遇到的問題,以此提高開發效率和體驗,對於MaxCompute Studio,每當有了新的MaxCompute功能,MaxCompute Studio會第一時間爲開發者提供新功能的使用。此處以外,MaxCompute Studio是徹底免費,開箱即用的,是基於IntelliJ平臺爲MaxCompute定製構建的IDE,同時MaxCompute Studio支持SQL編程以及UDF開發。大數據
接下來爲你們介紹MaxCompute Studio產品的設計初衷以及MaxCompute Studio如何與DataWorks配合使用的問題。比如下圖中挖金礦這一活動,在進行挖掘以前,咱們須要選擇一些工具挖到金子,以後再將金子轉換成有價值的東西,這一過程被稱爲「The Gold Life Cycle」。將挖掘數據價值的過程與挖金子的過程進行類比,首先將數據當作金礦,在數據層面,可能須要作各類各樣的事情,Data Scientist,Data Engineer等人均在數據價值挖掘中承擔角色;再將MaxCompute Studio比做中國最經常使用,應用最普遍的工具「兵工鏟」, 利用MaxCompute Studio挖掘數據的價值,以後再對數據進行加工,而後在阿里雲提供的數加平臺上享受大數據服務。以後,MaxCompute Studio會將UDF,SQL等功能在阿里雲數加平臺上進行共享和同步。
MaxCompute Studio—安裝
下圖展現了MaxCompute Studio的安裝步驟。MaxCompute Studio基於IntelliJIDEA,同時支持PyCharm,WebStorm等平臺,同時MaxCompute Studio也能夠很好的應用在IntelliJIDEA社區版本上。下載完IntelliJIDEA以後,須要安裝插件,查找MaxCompute Studio進行安裝,安裝完插件以後,重啓IntelliJIDEA。到這爲止,MaxCompute Studio已經安裝完畢了,能夠開啓你的MaxCompute之旅。
MaxCompute Studio—數據管理
下圖展現MaxCompute Studio提供的數據管理功能(詳情請見視頻分享)。在安裝完MaxCompute Studio以後,首先須要以已有的MaxCompute項目建立項目空間鏈接,但並非指開通了MaxCompute Project的服務,只是進行了一個關聯,能夠在client端隨時取消關聯。創建項目空間鏈接後,便可在項目空間瀏覽器中查看相關的數據結構和資源信息。咱們以MaxCompute帳號登錄後,能夠看到全部已經開通的項目,而後進行關聯;以後經過項目管理器能夠很方便的查看service及下面的project,表,function,資源文件等。雙擊一張表後,咱們能夠看到表的基本信息,schema等,若是是分區表,能夠根據分區進行數據瀏覽,同時咱們能夠在分區預覽時,進行數據導出及數據導入,Studio 能夠將CSV,TSV 等格式的本地數據文件導入到 MaxCompute 表中,也可將 MaxCompute 中表數據導出數據到本地文件。MaxCompute Studio提供在資源管理器上進行refresh的操做,也就是說表的數據結構是緩存在本地的,所以不管咱們處在離線或在線的狀況均可以看到智能提示。MaxCompute Studio集成了其餘工具,隨着MaxCompute Studio的更新,會綁定更新console版本。MaxCompute Studio提供了更多的輔助工具,若是想要建立Table,除了寫create table以外,MaxCompute Studio提供更多界面化的操做,例如建立外部表,創建索引等。
MaxCompute Studio—SQL開發
下圖展現MaxCompute Studio提供的SQL開發功能(詳情請見視頻分享)。MaxCompute Studio能夠實時報告編譯器錯誤,因爲表的元數據是在本地保存的,所以離線與在線情況下的報錯狀況存在不一樣。MaxCompute Studio提供上下文相關智能提示和代碼補全功能,在不一樣場景下將會看到不一樣的提示,在MaxCompute Studio中能夠集成元數據,這樣就能夠在編寫SQL語句時自動幫助開發者對於表格、字段以及函數進行提示。若是開發者在寫代碼時,忽然忘記了語法,MaxCompute Studio應用Live Template代碼模板進行代碼補全。開發者可使用全局快捷搜索查找內置的UDF等。當咱們把鼠標移到某個Table時,MaxCompute Studio實時顯示關聯信息,幫助和跳轉。MaxCompute Studio還在不斷的完善中,能夠經過全表掃描進行代碼缺陷檢測和快速修復。在MaxCompute Studio中能夠選中某個子查詢提交,以前提交的SQL及其狀態均可以查詢到。MaxCompute Studio提供的SQL功能遠不止下圖展現的那麼多,它老是無時無刻地協助SQL開發。
MaxCompute Studio—UDF開發
下圖展現MaxCompute Studio提供的UDF開發功能(詳情請見視頻分享)。UDF開發是咱們必須進行而且須要有一些工具支撐它。雖然SQL的表達能力很強,可是有一些業務邏輯仍然須要使用編程語言或使用外部的庫去處理,所以MaxCompute Studio的目標是幫助用戶經過SQL語言完善表達能力,同時容許用戶提供本身的UDF,例如UDAF,UDTF,UDJ等,將SQL與UDF結合起來更好的知足數據挖掘的須要。在MaxCompute Studio中能夠建立UDF,修改從模板中生成的代碼,調用業務邏輯,而後進行本地的調試,同時也支持將線上的表中的數據從新拿回來調試。調試完成後,經過一鍵部署,打包成jar,上傳到MaxCompute,註冊UDF,在SQL中調用,完成本地編譯和提交。用戶能夠在提交後可查看進度以及UDF的具體情況。另外,能夠經過遠程在線調試調整運行失敗的代碼。
MaxCompute Studio—做業可視化分析
下圖展現MaxCompute Studio提供的做業可視化功和分析功能(詳情請見視頻分享)。其實咱們在以後的代碼優化或是做業分析上會花必定時間。在做業分析方面,MaxCompute Studio提供了不一樣類型的做業熱力圖,能夠按照時間的長短,讀取的數據量,輸出的數據量等不一樣的緯度展示做業的狀態,這樣咱們能夠有針對性的查看每一個階段存在的問題。做業回放是MaxCompute Studio的一把利器,對於某項做業,咱們想知道它的運行情況,時間都花在了哪一個階段,這時候就能夠採用做業回放重現做業執行過程,MaxCompute Studio容許用戶回放做業執行進度的全過程,以便咱們瞭解在哪一個任務上花費了較長時間,哪一個階段處理數據或者輸出數據最多等狀況。咱們還能夠在執行計劃中看到每一個階段或者全局的做業執行狀況,查看正在執行的,等待執行的或者歷史做業執行情況。切換到時序圖tab,經過比較兩個做業的執行timeline,咱們能直觀地瞭解做業執行情況,查看做業的執行路徑,發現某個instance數據傾斜致使做業長尾等問題。