功能介紹
MaxFrame是阿里雲MaxCompute提供的一個基於Python編程介面的分散式運算架構,解決了傳統Python資料處理中效能瓶頸和低效資料移動的兩個難題。 MaxFrame可以直接在MaxCompute上實現PB級巨量資料的分散式處理與分析,執行可視化資料探索分析、科學計算、機器學習及AI開發等工作,從而滿足使用者在Python生態中日益增長的高效巨量資料處理和AI開發需求。
應用情境
互動式資料探索
當需要像在本地Jupyter Notebook中一樣,對海量資料進行即時的探索性分析、操作和可視化時,MaxFrame提供了流暢的、無記憶體限制的體驗。
大規模資料預先處理 (ETL)
對於TB級以上的未經處理資料清洗、格式轉換、特徵工程等任務,可以使用表達力更強、更易於維護的Python代碼替代複雜的SQL+UDF邏輯,同時享受分布式執行帶來的高效能。
AI與機器學習
在模型開發流程中,MaxFrame可以統一資料處理與模型訓練的體驗。可以用它高效地準備訓練資料,並結合鏡像功能引入Scikit-learn、XGBoost等庫,構建端到端的AI工作流程。
適用範圍
支援地區
華東1(杭州)、華東2(上海)、華北2(北京)、華南1(深圳)、中國香港、日本(東京)、新加坡、印尼(雅加達)、德國(法蘭克福)、美國(矽谷)、美國(維吉尼亞)。
支援環境
本地Python開發環境。
MaxCompute Notebook。
DataWorks Notebook。
DataWorks資料開發PyODPS 3任務節點。
計費說明
MaxFrame按照作業計算資源使用量計費,支援訂用帳戶付費方式。
訂用帳戶:作業將消耗已購買的資源群組配額,無額外費用。
詳情可參考 MaxCompute賬單用量明細分析。
核心優勢
MaxFrame相比於其他Python開發工具,更符合使用者熟悉的開發習慣、具有更高效的資料處理能力、具備更彈性的計算資源、提供更便捷的開發體驗。
相容Pandas的API:MaxFrame提供與Pandas高度相容的API,支援平滑遷移現有代碼至MaxCompute平台,大幅降低學習和遷移成本。
服務端分布式執行: MaxFrame作業直接在MaxCompute叢集內執行,資料無需拉取到本地,消除了因用戶端記憶體不足而導致的效能瓶頸,實現PB級海量資料高效處理。
彈性計算資源:MaxFrame依託MaxCompute Serverless架構,實現計算資源按需分配,無需管理叢集即可處理任意規模的資料處理任務。
簡化開發環境: MaxFrame提供內建的Python3.7和Python3.11環境,並預裝了 Pandas、XGBoost等常用庫。可以通過簡單的註解管理三方依賴,極大簡化了環境配置和依賴管理的複雜性,比手動打包上傳UDF依賴更為便捷。
與其他Python開發工具的對比如下:
對比項 | MaxFrame | PyODPS | Mars | SQL+UDF |
開發介面 | 與Pandas相容。 | 文法和介面與Pandas DataFrame有較大差異。 | 需要使用SQL和Python兩套介面。 | |
資料處理 | 運行時無需將資料拉取至本地處理,減少不必要的本機資料傳輸,提高作業執行效率。 | PyODPS中 | 僅對部分運算元支援分布式; 初始化時需要建立叢集,速度慢、穩定性不高。 | 基於MaxCompute SQL能力支援分布式作業。 |
計算資源 | 不受本地資源大小限制,突破Python單機效能瓶頸。 | 受本地資源大小限制。 | 受資源大小限制,需要指定Worker、CPU和Memory大小。 | 基於MaxCompute Serverless能力,可實現SQL作業彈性計算。 |
開發體驗 | 開箱即用的互動式開發環境及離線調度能力。內建常用庫,通過註解即可管理三方依賴,無需手動打包。 | 開箱即用的互動式開發環境及離線調度能力。 | 需要準備相應的運行環境,並拉起Mars叢集。 | Python UDF的依賴包需要手工打包和上傳。 |
工作原理
MaxFrame將分布式的複雜性對使用者保持透明。其自動化的工作流程如下:
代碼提交: 在用戶端(如Notebook)編寫並執行Python代碼。MaxFrame SDK將其捕獲並提交至MaxCompute。
解析與最佳化: MaxCompute的執行引擎接收作業後,會進行文法解析、邏輯最佳化,並將其轉化為可並存執行的物理計劃。
分布式執行: 最佳化後的任務被分發到MaxCompute叢集的眾多計算節點上,直接讀取資料並進行並行計算。
結果返回: 計算完成後,結果被匯總並返回到您的用戶端。