MaxFrame是由阿里雲自研的分布式科學計算架構,是對歷史相關產品功能(PyODPS、Mars)的重大升級,在MaxCompute之上提供一套完全相容Pandas介面的API,讓使用者用更為熟悉、更符合Python社群習慣的方式使用MaxCompute。本文為您介紹MaxCompute提供的Python開發生態的背景資訊及發展路徑。
背景資訊
Python作為目前機器學習、AI模型開發的主流程式設計語言,提供了如NumPy、SciPy、Scikit-Learn、Matplotlib等豐富的科學計算、可視化庫,用於資料科學和資料分析。同時支援TensorFlow、PyTorch、XGBoost、LightGBM等豐富的訓練架構。
NumPy:用於N維數組對象運算。
Pandas:是一個包含資料幀的資料分析庫。
Matplotlib:用於建立圖形和圖形的2D繪圖庫。
Scikit-Learn:用於資料分析和資料採礦任務的演算法。
為滿足使用者基於MaxCompute進行大規模資料處理、分析、挖掘及模型訓練的需求,MaxCompute提供了一套Python開發生態,讓使用者通過統一的Python編程介面一站式、高效地完成資料處理、加工及挖掘工作。
發展路徑
MaxCompute提供的Python開發生態發展路徑如下:
PyODPS
PyODPS於2015年正式發布,作為MaxCompute的Python SDK,支援通過Python介面對MaxCompute資料進行相關操作。經過多個版本的迭代發展,目前PyODPS已支援DataFrame架構,同時提供類似Pandas的文法,內建彙總、排序、去重等資料操作運算元。
Pyodps的核心功能如下:
對MaxCompute對象的基本操作(2015年):
PyODPS提供了對MaxCompute對象,例如表、資源、函數的訪問。
支援通過
run_sql
或execute_sql
的方式提交SQL。支援
run_xflow
或execute_xflow
的方式來執行PAI命令運行機器學習任務。支援通過
open_write
、open_reader
或原生Tunnel API的方式來上傳下載資料。
支援DataFrame API,提供類似Pandas的介面,能充分利用MaxCompute的計算能力進行DataFrame計算(2016~2022年):
PyODPS DataFrame可以讓使用者使用Python來進行資料操作,因此使用者可以很容易地利用Python的語言特性。
PyODPS DataFrame提供了很多pandas-like的介面,但擴充了它的文法,比如增加了MapReduce API來擴充以適應巨量資料環境。
內建彙總、排序、去重、採樣、可視化繪圖等常用函數。
Mars
在Python生態中,有NumPy、Pandas、Scikit-Learn等豐富的科學計算庫,提供了便捷的資料分析、挖掘運算元,但這些庫也大多受限於單機資源。Mars則是一個基於張量的統一分散式運算架構,實現了NumPy大約70%的介面,並進行了分布式化,不僅大幅減少了分布式科學計算代碼的編寫難度,同時在效能上也有大幅提升。
Mars核心功能如下:
相容及分布式化(2019年1月正式開源):支援將Numpy、Pandas、Scikit-Learn以及Python Function進行分布式化,相容大部分介面。
MaxFrame
Mars及PyODPS有不同使用情境,如熟悉Pandas、需要並行和分布式化Numpy、Scikit-Learn的使用者更適合使用Mars;而熟悉DataFrame,且對穩定性、資料量(TB以上)要求比較高的使用者則適合使用PyODPS,但架構的複雜也給使用者帶來了使用的困擾和操作的複雜度。
MaxFrame是由阿里雲自研的分布式科學計算架構,是對PyODPS及Mars的重大升級,在MaxCompute之上提供一套完全相容Pandas介面的API(比Mars的介面相容度更高),讓使用者可以用自己更為熟悉、更符合Python社群習慣的方式使用MaxCompute,同時MaxFrame會將使用者提交的作業根據其使用情境自動認可至最優的底層引擎執行(例如SQL Engine、Single Python Engine、Mars Engine),使用者無需再關注底層執行引擎的選擇,從而高效地完成資料開發分析以及AI訓練推理全過程,拉通Data+AI開發情境。架構圖如下所示:
MaxFrame核心功能如下:
更熟悉的開發習慣
MaxFrame相容Python開發生態,提供MaxCompute Python生態統一開發介面,可通過一份Python代碼實現完整的Data+AI開發流程。
MaxFrame可直接引用Numpy、SciPy、Pandas、Matplotlib等第三方庫進行科學計算、資料分析、可視化等操作,降低使用者操作成本。
更高的處理效能
MaxFrame可直連MaxCompute資料,運行時無需將資料拉取至本地計算,消除了不必要的本機資料傳輸,提高執行效率。
MaxFrame可直接使用MaxCompute海量彈性計算資源,並支援自動分布式、平行處理,大幅縮短資料處理的時間。
更便捷的開發體驗
MaxFrame已與MaxCompute Notebook、DataWorks整合,無需配置環境即可直接使用;同時MaxFrame也支援在使用者本地環境安裝使用。
MaxFrame支援直接引用MaxCompute內建鏡像及使用者自訂鏡像,降低開發環境準備時間,避免環境版本衝突。
更完善的運算元支援
MaxFrame完全相容Pandas介面且自動進行分散式處理,在保證強巨量資料處理能力的同時,大幅提高資料處理規模及計算效率。