功能介绍
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(北京)、华北6(乌兰察布)、华南1(深圳)、西南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集群的众多计算节点上,直接读取数据并进行并行计算。
结果返回: 计算完成后,结果被汇总并返回到您的客户端。