【云栖2023】张治国:MaxCompute架构升级及开放性解读
简介: 本文根据2023云栖大会演讲实录整理而成,演讲信息如下
演讲人:张治国|阿里云智能计算平台研究员、阿里云MaxCompute负责人
演讲主题:MaxCompute架构升级及开放性解读
活动:2023云栖大会
MaxCompute发展经历了三个阶段:MaxCompute1.0,主旨是达到大规模的数据处理能力,在性能和规模上提供给用户一个分布式处理平台;MaxCompute2.0,主旨是Serverless,强调弹性和性价比;MaxCompute3.0阶段主旨一体化,包括湖仓一体、离线实时一体化等。

在整个MaxCompute发展过程中,可以从五个维度看一下数仓的发展趋势;
- 随着现代数据驱动各个不同业务的发展,数据规模越来越大;
- 在不同规模下,应用越来越多元化,其中包括数据结构化、半结构化和非结构化,应用随着AI的兴起,AI的应用也越来越多,对数仓的要求也会越来越高;
- 数据的实时性、时效性要求越来越高,我们需要更多做数据实时大批量的流式导入、实时数仓这方面的工作;
- 对数据的准确性要求也越来越高,我们需要大规模数据治理、质量控制这方面的工作;
- AI兴起,大家都围绕着数据来做业务决策,怎么从现有数据中产出更高的价值,这也是大家对数仓发展的一个越来越高的要求;
围绕这五个不同发展趋势,阿里云提出MaxCompute4.0开放一体架构,围绕近实时,开放性、性价比、Data+AI一体化等多维度进行升级。

MaxCompute4.0开放一体架构,底层数据高并发、实时流式数据导入,数据同时可以选择导入到MaxCompute自己的盘古存储系统,也可以导入到OSS一些开放数据结构中,内置存储选用的是自己的AliORC。在这之上设计了统一的语言数据管理服务,可以纳管内置的存储数据,同时可以通过DF同时管理OSS和HDFS上面的开放数据结构。通过一个开放存储的服务,提供一个统一的接口给上层不同计算引擎做不同业务场景下的计算要求。再往上使用弹性计算资源调度,可以很容易调度不同的计算引擎在整个计算平台上去计算数据。最上层是对接不同的开发平台和数据应用。
MaxCompute 4.0 开放性升级:开放存储及计算架构
MaxCompute 4.0的开放性升级有两方面,一个是开放存储,一个是开放计算架构。开放存储我们希望把内置的数据格式能够通过开源内存格式提供给不同计算引擎。开放计算架构希望内置计算引擎可以通过同样一个API可以高效访问数据湖上的数据。
开放结构最主要提供的价值因为现在用户的应用、计算各个不同场景需要不同的计算引擎和不同的计算方式,MaxCompute 提供灵活开放的开源大数据AI引擎的计算方式给不同应用。并且在这种开放场景下,我们也可以提供比较灵活的计算资源。

如上图所示,左边是比较通用的一些场景,如果大家已经用了MaxCompute现代一些计算,同时需要一些AI计算或者一些其他计算,可以通过Storage API对接底下统一的数据源做不同的计算,这样可以提供一个数据零拷贝,不需要为了不同计算把数据拷贝出去放到不同地方然后做计算。另外我们希望能够提供统一的管理可以纳管不同的数据源,大家在云上或者别的地方有自己的计算资源也可以用自己的计算资源对接自己的数据做不同的计算。
现在数据的实时性方案很多在用的都是Lambda架构的模式,Lambda架构全链路数据治理都有很多痛点,这中间会有一些数据融合、数据一致性问题。在MaxCompute4.0升级的时候,做了近实时处理框架的发布,达到一份数据一份code,可以低成本低运维统一实施和批量处理链路。整个架构我们用一个统一的数据组织结构和数据管理,在这上面能够有统一的计算框架,大家不用在实时和离线框架上用不同计算引擎,最终实现所有数据不管实时还是离线都有统一的语言数据管理。
MaxCompute 4.0 致力于通过技术全方位提升性价比
随着AI的兴起,数据规模越来越大,用户对数据计算的性价比方面有更高的追求,MaxCompute4.0在过去一年,一直致力于做全方面的性价比提升。
计算高性能方面,SQL引擎方面在不断提高。在HBO/HBS根据历史查询数据,历史的统计信息我们能做更好的数据优化及查询优化,并且通过资源调度的优化提高性能。大家都知道大规模数据处理的时候,最主要的核心步骤是数据的shuffling,我们做了很多工作来提高整个数据shuffle性能。除此之外,MaxCompute4.0还尝试通过推荐能够帮助大家做一些物化视图的总结,根据物化视图消除重复性的计算。
在低成本方面,根据数据的冷热,访问的不同频率做到了分层存储。通过JSON半结构化数据的列存,实现更好的压缩。
在性价比方面,MaxCompute通过弹性资源调度、自适应SQL引擎、存储优化、智能数仓四个方面技术优化,实现了弹性CU最终降价50%。

- 弹性资源调度:当用户根据包年包月处理会有很多空闲时候,虽然没有用计算资源但是这个计算资源还是会算到里面去,如果有弹性资源就可以比较贴切计算的模型,根据不同时间段给不同的quota,从而达到降本增效。后面我们根据你的历史,比如过去三个月使用情况做一些不同的资源变配的推荐,满足资源降低成本的能力。
- 自适应的SQL引擎:我们做了更多的工作,可以分成stage和stage之间的自适应优化。在同一个stage不同算子之间我们也可以做到不同自适应算法。
- 存储优化:我们自研内部的数据格式AliORC,跟一些比较通用的parquet和ORC格式对比,测试结果显示读写性能是其2-6倍,压缩比我们比他们高大概30%。我们会根据你数据的访问频次能够自动推荐你在哪些数据可以做冷存数据,提供更高性价比的存储优化。
- 智能数仓:自研大数据对比开源大数据最大的区别就是我们是一个自闭环,能够做自动优化,将历史数据统一放到我们的原仓数据里,根据原仓信息,可以自动做一些存储方面和计算方面不同的优化。
MaxCompute 4.0 Data+AI:One Env+One Data+One Code
AI是一个新的浪潮,过去一年我们对数仓和AI如何结合做了很多思考。AI整个应用的生命周期是数据收集、数据清洗、数据预处理、数据训练、数据推理。有数据表明,大家认为80%的时间花在数据的处理上,数据处理有很多痛点:
- 大数据开发和AI开发是两个割裂的环境; 大数据开发很多时候大家用SQL,但是AI现在更多的用Python开发环境。
- AI更关注AI计算引擎; 对数据的大规模并发处理和分布式处理的能力有所欠缺,很多时候用户要在自己本地做数据清理,或者找数据开发师去做数据处理。
- 数据来源比较多样化; 很多数据大家会放在数据湖上,没有一个统一的数据管理的平台能够帮忙做数据管理,今天你处理了数据,而另外一个人需要产生非常相近的数据,但他不知道你这已经处理了这份数据他有可能重新跑一遍,不光花了时间也花了资源。
- 开发迭代效率低; 因为两套系统,导致整个开发链路都比较长,效率低下。

我们希望能够从数仓方面帮助用户解决那些痛点。MaxCompute 4.0主旨实现,One Env+One Data+One Code,这背后核心就是提供一个Python的开发环境,一个Notebook的开发体验。在Data For AI方面,MaxCompute全面升级DataFrame能力,发布分布式计算框架MaxFrame,100%兼容Pandas等数据处理接口,通过一行代码即可将原生Pandas自动转为MaxFrame分布式计算,打通数据管理、大规模数据分析、处理到ML开发全流程,打破大数据及AI开发使用边界,实现大数据AI开发一体化,大大提高开发效率。
另外在AI For Data方面,我们提供一个Python大数据处理,这样我们更容易使用一些丰富的AI和ML一些模型来做更好的数据挖掘和分析。
回头看整个MaxCompute4.0,我们希望做到数据的开放,计算引擎的包容,能够满足各种不同的数据计算场景的需求,以及根据数据实时性会增加增量计算的能力,满足大家对数据实时性的要求。后续MaxCompute也会持续在开放架构、增量处理、Data+AI三个方向持续发展。
相关文章:
【云栖2023】张治国:MaxCompute架构升级及开放性解读
简介: 本文根据2023云栖大会演讲实录整理而成,演讲信息如下 演讲人:张治国|阿里云智能计算平台研究员、阿里云MaxCompute负责人 演讲主题:MaxCompute架构升级及开放性解读 活动:2023云栖大会 MaxCompute发展经历了…...
【经验模态分解】4.信号由时域向频域的转换
/*** poject 经验模态分解及其衍生算法的研究及其在语音信号处理中的应用* file 傅里叶变换与小波变换* author jUicE_g2R(qq:3406291309)* * language MATLAB* EDA Base on matlabR2022b* editor Obsidian(黑曜石笔记软件&#…...
STM32的M4内核在keil上面float访问就hard_fault原因
使用 Keil MDK(Microcontroller Development Kit)开发时,出现硬件故障(hard fault)通常是由于访问浮点数(float)数据类型时,浮点单元配置不正确或浮点单元启用导致的。以下是一些可能…...
【LeetCode】217. 存在重复元素
217. 存在重复元素 难度:简单 题目 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 1: 输入:nums [1,2,3,1] 输出࿱…...
【Redis缓存架构实战常见问题剖析】
文章目录 一、Redis缓存架构实战剖析1.1、大规模的商品缓存数据冷热分离机制1.2、缓存击穿导致线上数据压力暴增解决方案1.3、缓存穿透及其解决方案剖析1.4、突发性的热点缓存数重建导致系统压力暴增问题分析1.5、Redis分布式锁解决缓存与数据库双写不一致问题剖析1.6、利用多级…...
mac M2 pytorch_geometric安装
我目前的环境是mac M2,我在base环境中安装了pytorch_geometric,仅仅做测试用的,不做真正跑代码的测试 首先我的base环境的设置如下: pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.…...
【C++】异常 智能指针
C异常 & 智能指针 1.C异常1.1.异常的抛出与捕获1.2.异常体系1.3.异常安全与规范1.4.异常优缺点 2.智能指针2.1.RAII2.2.智能指针的使用及原理2.2.1.auto_ptr2.2.2.unique_ptr2.2.3.shared_ptr2.2.4.shared_ptr的循环引用问题 & weak_ptr 2.3.定制删除器 1.C异常 C异常…...
切换数据库的临时表空间为temp1 / 切换数据库的undo表空间为 undotbs01
目录 编辑 一、切换临时表空间 1、登录数据库 2、查询默认临时表空间 3、创建临时表空间temp1(我们的目标表空间) 4、修改默认temp表空间 5、查询用户默认临时表空间 6、命令总结: 二、切换数据库的undo表空间 1、查询默认undo表…...
react: scss使用样式
方式一: 将样式作为模块使用 //List.tsx import styles from /styles/apppublish.module.scss <div className{styles.contentOverflow}></div>//apppublish.module.scss .contentOverflow {height: 100%;overflow-y: auto;display: flex;flex-directi…...
JAVA深化篇_36—— Java网络编程中的常用类
Java网络编程中的常用类 Java为了跨平台,在网络应用通信时是不允许直接调用操作系统接口的,而是由java.net包来提供网络功能。下面我们来介绍几个java.net包中的常用的类。 InetAddress的使用 作用:封装计算机的IP地址和DNS(没…...
python操作链接数据库和Mysql中的事务在python的处理
python操作数据库 pymysql模块: pip install pymysql作用:可以实现使用python程序链接mysql数据库,且可以直接在python中执行sql语句 添加操作 import pymysql #1.创建链接对象c conn pymysql.Connect(host127.0.0.1,#数据库服务器主机地址port3306, #mysql的端口…...
【qemu逃逸】XCTF 华为高校挑战赛决赛-pipeline
前言 虚拟机用户名: root 无密码 设备逆向与漏洞分析 程序没有去符合, 还是比较简单. 实例结构体如下: 先总体说一下流程: encode 为 base64 编码函数, decode 为 base64 解码函数. 然后 encPipe 和 decPipe 分别存放编码数据和解码数据, 分别有四个: 其中 EncPipeLine 中…...
muduo源码剖析之TcpClient客户端类
简介 muduo用TcpClient发起连接,TcpClient有一个Connector连接器,TCPClient使用Conneccor发起连接, 连接建立成功后, 用socket创建TcpConnection来管理连接, 每个TcpClient class只管理一个TcpConnecction,连接建立成功后设置相应的回调函数…...
C语言——switch语句判断星期
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int day 0;scanf("请输入1-7之间的整数:%d",&day);switch(day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf(&quo…...
栈回溯之CmBacktrace
简介 CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。主要特性如下: 支持的错误包括: 断言(assert)…...
node插件MongoDB(二)——MongoDB的基本命令
文章目录 前言1. 数据库命令(1)显示所有数据库(2)切换指定数据库(若没有自动创建)(3)显示当前所在数据库(4)删除当前数据库 2.集合(表名ÿ…...
【Git】推送Github失败:remote: Permission to xxx/*.git denied to xxx
在github上,创建了token,推送代码报没权限 #设置token git remote set-url origin <your.token>github.com/<your.name>/hello-git.git#推送代码 #git push -u origin main remote: Permission to xxx/hello-git.git denied to xxx. fatal:…...
Flink -- 状态与容错
1、Stateful Operations 有状态算子: 有状态计算,使用到前面的数据,常见的有状态的算子:例如sum、reduce,因为它们在计算的时候都是用到了前面的计算的结果 总结来说,有状态计算并不是独立存在的…...
Linux C语言进阶-D15递归函数和函数指针
递归函数 指一个函数的函数体中直接或间接调用了该函数本身 执行过程分为两个过程: 递推过程:从原问题出发,按递归公式递推从未知到已知,最终达到递推终止条件 回归阶段:按递归终止条件求出结果,逆向逐步…...
LeetCode算法心得——全排列(回溯型排列)
大家好,我是晴天学长,排列型的回溯,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1) .全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按…...
终极指南:如何在SketchUp中实现完美的STL导入导出
终极指南:如何在SketchUp中实现完美的STL导入导出 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl 你是否正在寻找…...
ComfyUI-Manager在MacOS上的完整部署实战手册:从零到专业级管理
ComfyUI-Manager在MacOS上的完整部署实战手册:从零到专业级管理 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable vari…...
Hypnos-i1-8Bmarkdown输出:自动生成含公式、代码块、步骤编号的结构化报告
Hypnos-i1-8B:自动生成含公式、代码块、步骤编号的结构化报告 1. 模型概述 Hypnos-i1-8B是一款专注于强推理能力和思维链(CoT)表现的8B参数开源大模型。该模型基于NousResearch/Hermes-3-Llama-3.1-8B微调而来,通过量子噪声注入训练技术显著提升了在复…...
从Radare2到Pwndbg:手把手教你用Unicorn Engine给逆向工具写个插件
从Radare2到Pwndbg:用Unicorn Engine构建高级逆向插件的实践指南 逆向工程工具链的扩展能力是安全研究人员最看重的特性之一。当我们需要动态分析加壳代码、模拟执行加密指令或跟踪复杂控制流时,传统调试器的局限性就会显现。本文将展示如何利用Unicorn …...
渗透测试必备:SQLmap 超详细使用指南,SQL 注入从入门到精通
01、SQLmap简介 Sqlmap是一款开源的渗透测试工具 🚀下载及安装 下载地址:http://sqlmap.org/ windows或mac下载第一个,linux下载第二个 kali默认自带sqlmap不需要安装 解压刚下载好的压缩包后,重命名为sqlmap 移动到python目…...
告别纸上谈兵!用Keil uVision5和Proteus 8.9从零搭建51单片机流水灯(附完整资源包)
从零构建51单片机流水灯:Keil与Proteus实战避坑指南 当你第一次接触单片机开发时,是否曾被各种专业术语和复杂的工具链劝退?本文将带你用最直观的方式,完成第一个51单片机仿真项目——流水灯。不同于网上零散的教程,这…...
51单片机+DHT11温湿度传感器保姆级教程:从接线到LCD1602显示,附串口调试避坑指南
51单片机与DHT11温湿度传感器实战指南:从硬件搭建到数据可视化全解析 第一次接触51单片机和传感器的新手们,是否曾被那些密密麻麻的引脚和复杂的时序图吓退?温湿度检测作为物联网中最基础却又最实用的功能之一,其实并没有想象中那…...
保姆级教程:在Ubuntu上为AM5728开发板交叉编译GPSD 3.18(附依赖库完整打包)
嵌入式Linux实战:AM5728平台GPSD 3.18交叉编译全流程解析 在工业物联网和自动驾驶领域,GPS模块的精准授时与定位功能已成为核心需求。本文将深入探讨如何在TI AM5728开发板上部署GPSD 3.18服务,重点解决交叉编译过程中的依赖库兼容性问题。不…...
借助爱毕业(aibiye),数学建模论文的复现和智能排版优化一键完成
AI工具在数学建模论文复现与排版中能大幅提升效率。通过评测10款热门AI论文助手发现,部分工具可自动生成LaTeX代码、优化公式排版,甚至能基于草图快速复现复杂模型。智能改写功能可避免查重问题,而文献管理模块能自动整理参考文献格式。针对时…...
Keras图像数据增强实战:提升模型泛化能力
1. 图像数据增强在Keras中的配置指南在计算机视觉项目中,数据不足是常见挑战。我曾在多个实际项目中验证过,合理使用图像数据增强技术能使模型准确率提升15-30%。Keras提供的ImageDataGenerator类让这项技术变得触手可及。数据增强的本质是通过对原始图像…...
