MaxFrame

功能介绍

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按照作业计算资源使用量计费,支持按量付费包年包月付费方式。

  • 按量付费:作业将按实际消耗的 CU(Compute Unit)时进行计费。

  • 包年包月:作业将消耗已购买的资源组配额,无额外费用。

详情可参考 MaxCompute账单用量明细分析

核心优势

MaxFrame相比于其他Python开发工具,更符合用户熟悉的开发习惯、具有更高效的数据处理能力、具备更弹性的计算资源、提供更便捷的开发体验。

  • 兼容PandasAPI:MaxFrame提供与Pandas高度兼容的API,支持平滑迁移现有代码至MaxCompute平台,大幅降低学习和迁移成本。

  • 服务端分布式执行: MaxFrame作业直接在MaxCompute集群内执行,数据无需拉取到本地,消除了因客户端内存不足而导致的性能瓶颈,实现PB级海量数据高效处理。

  • 弹性计算资源:MaxFrame依托MaxCompute Serverless架构,实现计算资源按需分配,无需管理集群即可处理任意规模的数据处理任务。

  • 简化开发环境: MaxFrame提供内置的Python3.7Python3.11环境,并预装了 Pandas、XGBoost等常用库。可以通过简单的注解管理三方依赖,极大简化了环境配置和依赖管理的复杂性,比手动打包上传UDF依赖更为便捷。

与其他Python开发工具的对比如下:

对比项

MaxFrame

PyODPS

Mars

SQL+UDF

开发接口

Pandas兼容

语法和接口与Pandas DataFrame有较大差异。

需要使用SQLPython两套接口。

数据处理

运行时无需将数据拉取至本地处理,减少不必要的本地数据传输,提高作业执行效率。

PyODPSto_pandas方法读取数据,需要将数据拉到本地计算。

仅对部分算子支持分布式;

初始化时需要创建集群,速度慢、稳定性不高。

基于MaxCompute SQL能力支持分布式作业。

计算资源

不受本地资源大小限制,突破Python单机性能瓶颈。

受本地资源大小限制。

受资源大小限制,需要指定Worker、CPUMemory大小。

基于MaxCompute Serverless能力,可实现SQL作业弹性计算。

开发体验

开箱即用的交互式开发环境及离线调度能力。内置常用库,通过注解即可管理三方依赖,无需手动打包。

开箱即用的交互式开发环境及离线调度能力。

需要准备相应的运行环境,并拉起Mars集群。

Python UDF的依赖包需要手工打包和上传。

工作原理

MaxFrame将分布式的复杂性对用户保持透明。其自动化的工作流程如下:

  1. 代码提交: 在客户端(如Notebook)编写并执行Python代码。MaxFrame SDK将其捕获并提交至MaxCompute。

  2. 解析与优化: MaxCompute的执行引擎接收作业后,会进行语法解析、逻辑优化,并将其转化为可并行执行的物理计划。

  3. 分布式执行: 优化后的任务被分发到MaxCompute集群的众多计算节点上,直接读取数据并进行并行计算。

  4. 结果返回: 计算完成后,结果被汇总并返回到您的客户端。

相关文档