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

本文根据《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 进一步增强数仓本身各项指标和能力。这一部分后续会由其他同事进行介绍。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容