您好,登錄后才能下訂單哦!
MaxCompute是什么意思,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
很多剛初次接觸MaxCompute的用戶,面對繁多的產品文檔內容以及社區文章,往往很難快速、全面了解MaxCompute產品全貌。同時,很多擁有大數據開發經驗的開發者,也希望能夠結合自身的背景知識,將MaxCompute產品能力與開源項目、商業軟件之間建立某種關聯和映射,以快速尋找或判斷MaxCompute是否滿足自身的需要,并結合相關經驗更輕松地學習和使用產品。
這里將站在一個更宏觀的視角來分主題地介紹MaxCompute產品,以期讀者能夠通過本文快速獲取對MaxCompute產品的認識。
概念篇
產品名稱:大數據計算服務(英文名:MaxCompute)
產品說明:MaxCompute(原ODPS)是一項大數據計算服務,它能提供快速、完全托管的PB級數據倉庫解決方案,使您可以經濟并高效的分析處理海量數據。
產品說明的前半部分,將MaxCompute定義為大數據計算服務,可以理解為它的功能定位于支持大數據計算,同時是一款基于云的服務化的產品。后半部分,說明了它的適用場景:大規模數據倉庫、海量數據處理、分析。
單從這里還不能了解到大數據計算服務提供了哪些的計算能力,具備怎樣的服務化?產品定義中出現了數據倉庫字眼,我們能夠了解到MaxCompute能夠處理較大規模(這里提到了PB級別)結構化數據。而“海量數據處理”除了數據規模大之外,對于非結構化數據的處理有待驗證,同時”分析”是否在常見的SQL分析能力之外,提供了其他復雜分析的能力。
帶著這樣的問題,我們繼續開始介紹,希望在后面的內容中能夠清晰地回答這些問題。
架構篇
在介紹功能前,先提綱挈領從產品整體邏輯結構開始,讓讀者有個全貌了解。
MaxCompute提供了云原生、多租戶的服務架構,在底層大規模計算、存儲資源之上預先構建好了MaxCompute計算服務、服務接口,提供了配套的安全管控手段和開發工具管理工具,產品開箱即用。
用戶可以在阿里云控制臺,在幾分鐘內完成服務開通并創建MaxCompute項目,無需進行底層資源開通、軟件部署、基礎設施運維,系統自動進行(由阿里云專業團隊)版本升級、問題修復。
功能篇
數據存儲
支持大規模計算存儲,適用于TB以上規模的存儲及計算需求,最大可達EB級別。同一個MaxCompute項目支持企業從創業團隊發展到獨角獸的數據規模需求;
數據分布式存儲,多副本冗余,數據存儲對外僅開放表的操作接口,不提供文件系統訪問接口
自研數據存儲結構,表數據列式存儲,默認高度壓縮,后續將提供兼容ORC的Ali-ORC存儲格式
支持外表,將存儲在OSS對象存儲、OTS表格存儲的數據映射為二維表
支持Partition、Bucket的分區、分桶存儲
更底層不是HDFS,是阿里自研的盤古文件系統,但可借助HDFS理解對應的表之下文件的體系結構、任務并發機制
使用時,存儲與計算解耦,不需要僅僅為了存儲擴大不必要的計算資源
多種計算模型
需要說明的是,傳統數據倉庫場景下,實踐中有大部分的數據分析需求可以通過SQL+UDF來完成。但隨著企業對數據價值的重視以及更多不同的角色開始使用數據時,企業也會要求有更豐富的計算功能來滿足不同場景、不同用戶的需求。
MaxCompute不僅僅提供SQL數據分析語言,它在統一的數據存儲和權限體系之上,支持了多種計算類型。
MaxCompute SQL:
TPC-DS 100% 支持,同時語法高度兼容Hive,有Hive背景開發者直接上手,特別在大數據規模下性能強大。
完全自主開發的compiler,語言功能開發更靈活,迭代快,語法語義檢查更加靈活高效
基于代價的優化器,更智能,更強大,更適合復雜的查詢
基于LLVM的代碼生成,讓執行過程更高效
支持復雜數據類型(array,map,struct)
支持Java、Python語言的UDF/UDAF/UDTF
語法:Values、CTE、SEMIJOIN、FROM倒裝、Subquery Operations、Set Operations(UNION /INTERSECT /MINUS)、SELECT TRANSFORM 、User Defined Type、GROUPING SET(CUBE/rollup/GROUPING SET)、腳本運行模式、參數化視圖
支持外表(外部數據源+StorageHandler 支持非結構化數據)
MapReduce:
支持MapReduce編程接口(提供優化增強的MaxCompute MapReduce,也提供高度兼容Hadoop的MapReduce版本)
不暴露文件系統,輸入輸出都是表
通過MaxCompute客戶端工具、Dataworks提交作業
MaxCompute Graph圖模型:
MaxCompute Graph是一套面向迭代的圖計算處理框架。圖計算作業使用圖進行建模,圖由點(Vertex)和邊(Edge)組成,點和邊包含權值(Value)。
通過迭代對圖進行編輯、演化,最終求解出結果
典型應用有:PageRank,單源最短距離算法,K-均值聚類算法等
使用MaxCompute Graph提供的接口Java SDK編寫圖計算程序并通過MaxCompute客戶端工具通過jar命令提交任務
PyODPS:
用熟悉的Python利用MaxCompute大規模計算能力處理MaxCompute數據。
PyODPS是MaxCompute 的 Python SDK,同時也提供 DataFrame 框架,提供類似 pandas 的語法,能利用 MaxCompute 強大的處理能力來處理超大規模數據。
PyODPS 提供了對 ODPS 對象比如 表 、資源 、函數 等的訪問。
支持通過 run_sql/execute_sql 的方式來提交 SQL。
支持通過 open_writer 和 open_reader 或者原生 tunnel API 的方式來上傳下載數據
PyODPS 提供了 DataFrame API,它提供了類似 pandas 的接口,能充分利用 MaxCompute 的計算能力進行DataFrame的計算。
PyODPS DataFrame 提供了很多 pandas-like 的接口,但擴展了它的語法,比如增加了 MapReduce API 來擴展以適應大數據環境。
利用map 、apply 、map_reduce 等方便在客戶端寫函數、調用函數的方法,用戶可在這些函數里調用三方庫,如pandas、scipy、scikit-learn、nltk
Spark:
MaxCompute提供了Spark on MaxCompute的解決方案,使MaxCompute提供的兼容開源的Spark計算服務,讓它在統一的計算資源和數據集權限體系之上,提供Spark計算框架,支持用戶以熟悉的開發使用方式提交運行Spark作業。
支持原生多版本Spark作業:Spark1.x/Spark2.x作業都可運行;
開源系統的使用體驗:Spark-submit提交方式(暫不支持spark-shell/spark-sql的交互式),提供原生的Spark WebUI供用戶查看;
通過訪問OSS、OTS、database等外部數據源,實現更復雜的ETL處理,支持對OSS非結構化進行處理;
使用Spark面向MaxCompute內外部數據開展機器學習,擴展應用場景;
交互式分析(Lightning)
MaxCompute產品的交互式查詢服務,特性如下:
兼容PostgreSQL:兼容PostgreSQL協議的JDBC/ODBC接口,所有支持PostgreSQL數據庫的工具或應用使用默認驅動都可以輕松地連接到MaxCompute項目。支持主流BI及SQL客戶端工具的連接訪問,如Tableau、帆軟BI、Navicat、SQL Workbench/J等。
顯著提升的查詢性能:提升了一定數據規模下的查詢性能,查詢結果秒級可見,支持BI分析、Ad-hoc、在線服務等場景;
機器學習:
MaxCompute內建支持的上百種機器學習算法,目前MaxCompute的機器學習能力由PAI產品進行統一提供服務,同時PAI提供了深度學習框架、Notebook開發環境、GPU計算資源、模型在線部署的彈性預測服務。PAI產品與MaxCompute在項目和數據方面無縫集成。
對比篇
為便于讀者,特別是有開源社區經驗的讀者快速建立對MaxCompute主要功能的了解,這里做簡單地映射說明。
項目
MaxCompute產品
對開源社區的一些比較說明
SQL
MaxCompute SQL
阿里自研SQL引擎,語法兼容Hive,功能和性能更優
MapReduce
MaxCompute MR
阿里自研,類似并支持Hadoop MapReduce,MaxCompute Open MR做了優化和提升
交互式
MaxCompute Lightning
Serverless的交互式查詢服務,功能類似開源生態的Presto、Hawk等
Spark
Spark on MaxCompute
支持原生Spark運行在MaxCompute上,類似Spark on Yarn形態
機器學習
PAI
不同于開源社區的算法庫,PAI有更豐富的算法,超大規模處理能力,更是覆蓋了ML/DL全流程需求的平臺服務。
存儲
Pangu
阿里自研分布式存儲服務,類似HDFS。MaxCompute對外目前只暴露表接口,不能直接訪問文件系統。
資源調度
Fuxi
阿里自研的資源調度系統,類似Yarn。
數據上傳下載
Tunnel
不暴露文件系統,通過Tunnel進行批量數據上傳下載。
流式接入
Datahub
MaxCompute配套的流式數據接入服務,粗略地類似kafka,能夠通過簡單配置歸檔topic數據到MaxCompute表
用戶接口
CLT/SDK
統一的命令行工具和JAVA/PYTHON SDK
開發&診斷
Dataworks/Studio/Logview
配套的數據同步、作業開發、工作流編排調度、作業運維及診斷工具。開源社區常見的Sqoop、Kettle、Ozzie等實現數據同步和調度。
整體
不是孤立的功能,完整的企業服務
不需要多組件集成、調優、定制,開箱即用。
問題篇
dataworks和MaxCompute之間的關系與區別?
這是2個產品,MaxCompute做數據存儲和數據分析處理,Dataworks是集成了數據集成、數據開發調試、作業編排及運維、元數據管理、數據質量管理、數據API服務等等功能的大數據開發IDE套件。類似Spark和HUE的關系,不知道這個對比是否準確。
想測試、體驗MaxCompute,成本費用高嗎?
不高,應該說很低。MaxCompute提供了按作業付費的模式,其中單個作業的費用有和作業處理的數據大小密切相關。開通按量付費服務,并創建1項目。利用MaxCompute客戶端工具(ODPSCMD)或者在dataworks里,創建表并上傳測試數據,就可以開始測試體驗了。數據不大的話,10元錢可以用很長一段時間。
當然,MaxCompute還有獨占資源的模式,出于費用可控的考慮,也選擇了預付費的模式。
另外,MaxCompute馬上推出”開發者版”,每個月為開發者贈送一定的免費額度用于開發、學習。
MaxCompute存儲目前只暴露表,能處理非結構化數據嗎?
可以,非結構化數據可以存放在OSS上,一種方式是通過外表方式,通過自定義Extractor來實現非結構化處理為結構化數據的邏輯。另外,也可以用Spark on MaxCompute對OSS進行訪問,通過Spark程序對OSS目錄下的文件進行抽取轉換,結果寫入MaxCompute表。
支持哪些數據源接入到MaxCompute
通過Dataworks數據集成服務或者自己使用DataX,可以實現阿里云上的各種離線數據源如數據庫、HDFS、FTP等數據源的接入;
也可以用MaxCompute Tunnel工具/SDK,通過命令或SDK批量進行數據上傳、下載;
流式數據,可以利用MaxCompute提供的Flume/logstash插件,將流式數據寫入Datahub,然后歸檔到MaxCompute表;
支持阿里云SLS、DTS服務數據寫入MaxCompute表;
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。