写点什么

面向 Data+AI 的新一代智能数仓平台

  • 2025-02-14
    浙江
  • 本文字数:3592 字

    阅读完需:约 12 分钟

本文根据《Data+AI 融合趋势下的智能数仓平台建设》线下 meetup 演讲实录整理而成


演讲人:于得水 - 阿里云计算平台事业部 资深技术专家

MaxCompute 介绍

MaxCompute 是阿里云自研大数据计算平台,发展至今已历经约 15 年的演进与优化。MaxCompute 最初命名为 ODPS,在阿里集团内部则被称为“云梯 2”。ODPS 自诞生之初便致力于构建一个全面且高效的 SQL 生态系统,并针对 Hive SQL 进行了大量优化。在阿里集团内部应用也十分广泛,支撑了很多核心业务。2014-2015 年,ODPS 正式登陆公共云市场,对外提供服务,并更名为 MaxCompute。凭借显著的技术优势和丰富的功能特性,MaxCompute 迅速收获众多国内外企业,用以支撑企业核心业务。


MaxCompute 有几个特点,首先是提供云原生 Serverless 的服务形态。与许多其他面向单租户或需要预约计算资源的平台不同,无需用户预约资源。这一特性极大地降低了运维成本,使用户能够专注于业务本身。此外,MaxCompute 还支持企业级弹性资源调度(如:弹性计算资源以及分时资源等功能),进一步帮助用户节约成本。MaxCompute 提供强大的企业级安全保障,包括多租户隔离、多层次的安全验证机制以及底层数据加密等,以确保用户数据安全。


作为强大的数仓平台,MaxCompute 不仅支持传统的离线数据分析,还支持增量和近实时场景。此外,MaxCompute 还集成了大数据 AI 一体化能力,支持数据加工、BI 分析、数据探查、数据科学等场景。MaxCompute 通过提供丰富的 SDK、Open API、Console,集成 PAI Studio 等,提供了便捷的接入方式。同时,MaxCompute 也无缝集成 DataWorks 等大数据治理平台,支持进行数据管理、血缘分析、作业提交等。


计算引擎方面,MaxCompute 提供自研 MaxCompute SQL 引擎,同时也支持开源计算引擎,如 Apache Spark。此外,我们还支持自研分布式 Python 计算引擎。底层数据则通过统一的元数据管理进行统一管理,确保底层存储的数据能够被高效、一致地访问和处理。在架构设计上,我们采用了存算分离的架构,底层存储依赖于阿里云飞天盘古存储,同时还支持将数据存储在数据湖中,并支持基于数据湖的计算与分析。MaxCompute 保持了高度的开放性和兼容性。用户可以通过 Storage API,轻松地读取 MaxCompute 中的数据,并使用三方计算引擎进行处理与分析。


数仓平台在 Data+AI 时代面临的挑战

随着 AI 技术越来越热门,大模型能力日新月异,在大数据 AI 融合的时代背景下,传统的数仓平台面临着一系列新的挑战。通过接触客户,服务各类业务场景,我总结了几点。


首先,生成式 AI 能力成为很多客户的普遍需求。随着大模型能力不断增强,如何真正用好大模型成为一个难题。尽管开源社区提供了大量高质量模型,如通义千问 2.5、DeepSeek 等,但将这些模型成功部署到生产环境中,并高效地应用于实际业务场景中,依然存在较高的技术门槛。


其次,在数据处理即 Data for AI 方面,数仓平台如何更好地支撑大模型预训练的数据处理需求,高效地处理大规模数据,包括量结构化、半结构化及非结构化数据,构成了另一个重要挑战。


此外,如何利用 AI 增强数仓自身能力,如智能查询优化,物化视图,智能诊断等,即 AI for Data 也是一个需要关注的方向。


最后,Data+AI 开发迭代速度非常快,如何提供更友好的开发测试部署环境,帮助开发者更敏捷地进行开发,也是一大难题。


MaxCompute 面向 Data+AI 场景的解决方案

针对上述挑战,MaxCompute 提出了一套全面的解决方案。首先,在数据管理方面,MaxCompute 对接 OpenLake 解决方案。阿里云 OpenLake 解决方案建立在开放可控的 OpenLake 湖仓之上,提供大数据搜索与 AI 一体化服务。基于 OSS 的公共湖仓,结合元数据管理平台 DLF,支持结构化、半结构化及非结构化数据的管理,确保数据表和文件的安全访问,并具备增删改查与 IO 加速能力。该方案支持大数据、搜索和 AI 多引擎对接,实现引擎平权协同计算。


其次,针对高效的数据处理需求,特别是 AI 领域 Python 分布式数据处理的需求,我们提供了 python 分布式计算框架。统一 Python 编程接口,兼容 Pandas、XGboost 等数据处理及 ML 算子接口且自动实现分布式处理,同时能直接使用 MaxCompute 的弹性计算资源和数据接口,Python 开发者可以更加高效、便捷的在 MaxCompute 上完成大规模数据处理、可视化探索、科学计算及 ML/AI 开发等工作。


为了提升开发体验,提高开发敏捷度,我们还推出了一套交互式的开发环境,开箱即用,用户可以像开发本地 Notebook 程序一样进行开发,同时还提供诊断分析功能。


最后,我们提供了一个镜像管理平台,用户可以在自定义镜像中运行 UDF。确保开发环境与生产环境尽可能对齐,从而提高开发效率。


分布式计算框架 MaxFrame

熟悉 MaxCompute 的用户可能了解,MaxCompute 之前有很多 Python 生态产品。比如最早的 PyODPS,它提供了一套 Python API,使用户能够访问 MaxCompute,并提供 Python UDF 功能,支持将用户编写的 Python 脚本嵌入 SQL 中进行调用。然而,这些早期的产品存在一些局限性,主要体现在社区标准兼容性不足、部署灵活性差以及运维效率低下等。具体来说,尽管 PyODPS 支持 Dataframe,但它并不完全兼容 Pandas 设计标准;此外,用户写好 Python 后需要上传 Resource 在 SQL 里面调,Python UDF 里面各种 Python 包依赖,需要手工去打包上传。


针对这些问题,我们推出了新一代 Python 分布式计算框架 MaxCompute MaxFrame。基于底层的多种计算引擎 (SQL, DPE, PAI DLC/EAS),用户可以在 MaxFrame 开发环境中使用一套 Python 代码完成数据预处理,模型训推等流程,解决 MC 中大数据和 AI 在开发体验和运行中彼此割裂的现状。


Object Table 增强非结构化数据处理能力

针对 AI 场景,非结构化数据越来越多,尤其是在多模态大模型训练和数据处理领域。这些非结构化数据如图片、音频、视频等,通常存储于对象存储或其他数据湖介质中。如何高效地管理和访问这些数据一直是一个难题,往往需要用户自行编写脚本,还面临数据频繁拉取和数据清洗问题。


为了解决这一问题,MaxCompute 在去年云栖大会上发布了 Object Table:


  • 支持 SQL 以表的形式读取 OSS 文件元信息

  • 基于 Meta Table 读取并版本化缓存 OSS 文件的多种元信息,便于 SQL 过滤和下推

  • 基于 Document Function 读取文件内容,支持上传 UDF 处理非结构化数据

  • MaxCompute SQL 引擎基于元信息切分并发,启动大规模分布式计算能力,加快数据读取和处理的效率

  • 支持生成结构化数据并写入数仓内外表

  • Python 生态的 Maxframe 框架支持使用 Object table


近实时计算+增全量一体化

在众多 AI 应用场景中,实时数据处理的需求日益显著。以自动驾驶为例,摄像头捕捉的图像数据及各类驾驶数据需要实时导入数据仓库平台。MaxCompute 提供了一套高效的近实时处理能力,以满足这些需求。MCQA 2.0 交互式查询引擎针对单租户环境支持多 Quota 组资源隔离,通过分时资源分组功能,用户可以以更快的速度进行数据查询,交互式查询性能优化提升 1 倍。此外,增量计算和增量 MV-Pipeline 智能编排功能,能够实现实时或自定义增量数据刷新,确保数据的新鲜度。DeltaTable 支持近实时写入,Checkpoint 间隔可缩短至分钟级,支持 SQL 近实时查询。数据写入 1-5min 后即可查询,同时自动进行数据文件管理,包括 StorageService、AutoCompaction 和 AutoSorting,以优化存储效率和查询性能。


AI Function

MaxCompute 还提供了一套对外的 AI Function,为用户提供强大的 GenAI 能力。底层对接阿里云飞天大模型,旨在简化生成式 AI 数据处理流程。如下 Demo,我们在数据湖上有一组驾驶摄像头拍摄的图片。我们封装了一套 AI Function API 接口。用户可以在 AI Function 中输入模型参数,按照模板编写提示词。然后使用 MaxFrame API 从 ObjectTable 生成 DataFrame,并调用 AI Function 进行图片内容分析。然后将数据存储到 MaxCompute 表中供后续使用。整个过程设计得非常便捷,用户无需关注复杂的模型部署或编写繁琐的脚本来读取文件数据,只需通过简单的 API 调用进行语义处理即可。


MaxFrame LLM 算子

基于 MaxFrame LLM 算子支持大模型预训练的高效文本去重,也有很多用户已经在使用。在大模型预训练领域,为了确保高质量的训练结果,文本去重是一个不可或缺的步骤。如果将未经去重处理的文本数据灌到大模型中,会导致训练质量下降。而文本去重过程涉及大量数据计算。MaxFrame 提供文本去重算子(MinHash+LSH)对相似文档进行高效语义去重。用户通过指定参数,即可计算 MiniHash LSH Band,聚合同 Band 相同 Hash 值的文档,最后生成计算连通图并只保存一个,非常方便高效地实现文本去重。基于公开数据集进行测试,FineWeb-edu 30 亿条数据(8TB),使用 4000 CU,3 小时即可完成文本去重,这是一个非常好的性能指标。


智能数仓能力概览

如下图是 MaxCompute 智能数仓能力概览。通过智能诊断、智能物化视图、智能调优、数据排布等方面,真正实现利用 AI 进一步增强数仓本身各项指标和能力。这一部分后续会由其他同事进行介绍。



用户头像

还未添加个人签名 2020-10-15 加入

分享阿里云计算平台的大数据和AI方向的技术创新和趋势、实战案例、经验总结。

评论

发布
暂无评论
面向 Data+AI 的新一代智能数仓平台_大数据_阿里云大数据AI技术_InfoQ写作社区