性能追求之路——MaxCompute2.0的前世今生

在2017云栖大会·深圳峰会大数据专场,阿里云高级专家云郎分享了《大数据计算服务MaxCompute产品最新动态》。他首先介绍了MaxCompute的发展历程和技术架构,然后对MaxCompute 2.0版本新特性和新技术进行了详细介绍。最后,分享了基于MaxCompute平台构建完整大数据应用架构、构建新型数据仓库、实现个性化推荐的实践。

本文根据直播视频整理而成。

首先看三个简单的问题。在阿里内部已经有了30多个业务单元,是一个典型的数据驱动公司。数据在整个业务创新、业务变更的过程中起了非常重要的作用。所以,是什么技术支撑了阿里巴巴集团内部的数据计算要求?经历了很多次双十一,双11背后的大数据平台是什么?在阿里云,第1个运行在阿里云飞天平台上的云服务是什么?答案非常简单,就是阿里云大数据平台MaxCompute。

MaxCompute

MaxCompute是阿里云提供的从GB到EB级的、免运维的、安全可靠的数据仓库平台。作为云服务,MaxCompute具有几个显著的特点:开通即用,这是所有云服务的特点,非常便利;在云上,借助于大规模的规模效应带来的高性能、低成本;数据安全、可靠;支持多种分布式计算模型,计算架构发展到今天,没有一种架构能够满足所有的场景,MaxCompute可以做离线计算、批量计算,学习能力强;兼容生态开放,提供了众多接口和生态的工具。

发展历程

上图是MaxCompute的发展历程,阿里云是2009年成立的,当时的愿景是要做运算和分享数据的第一平台。2010年,自主研发的MaxCompute作为数据仓库平台正式上线。2012年,开始搭建集团统一的数据平台,提供统一的数据存储、计算、分享。2013年,整个数据的规模指数级的增长,推出了具备5K集群能力的飞天平台。2014-2015年,“双十一”交易过程中,逐渐成为了共享仓库的数据平台。2016年,推出了MaxCompute 2.0,带来了新的特性。

技术架构

上图是MaxCompute的技术架构。最下面一层是物理机器,MaxCompute有自己的物理集群,在集群之上有非常重要的能力:它把一个集群组织成了1万台计算机,MaxCompute 2.0很大的特性是集群能力得到了扩展,从5千变成了1万。黑色部分是飞天操作系统,提供整个分布式系统任务协同、资源管理、集群调度等功能,为上层云产品提供统一的操作系统服务。其上是MaxCompute统一的计算引擎,支持SQL、MR、迭代计算、图计算、流计算。

MaxCompute的特性

MaxCompute的特性如上图所示。

从上图可以看出,截止到目前,MaxCompute获得了广泛应用。在阿里巴巴内部,其支持了所有的BU,所有的数据仓库、数据平台都是共享在MaxCompute之上的。在开发者社区,吸引了超过8000+的开发者。众多的应用和数据也在MaxCompute上。并且,有众多的内外客户都在使用MaxCompute。

MaxCompute 2.0

最新推出的MaxCompute 2.0的新性能如上图所示。高性能方面主要依托于全新的SQL 2.0计算引擎。在新功能方面提供了非结构化的处理,在云上开始使用OSS(开放的对象存储)、OTS(开放的表格存储),MaxCompute对其进一步分析和计算提供了连接性。机器学习在新版本中提出了CPU和GPU统一的架构,在富生态中也提出了新的能力。

全新的SQL 2.0引擎

在编译器方面,基于AST的编译器模型,Visitor模型(Antlrv4),IDE IntelliSense,Warning支持完整的存储过程,LOOP/IFELSE判断等;在优化器方面,CBO基于代价的优化器,Volcano模型,展开各种可能等价的执行计划,然后依赖统计信息,计算这些等价执行计划的“代价”,最后最低的执行计划;在运行时方面,利用LLVM技术,在运行时生成较优的机器码,采用列式执行框架,提高CPU流水线的执行效率,并提高缓存命中率,使用SIMD。

上图是全球公认的Sort Benchmark测试结果。2015年,MaxCompute打破世界纪录,获得“速度最快计算引擎”称号。2016年,逐渐降低计算成本,并打破世界纪录。

非结构化数据处理框架

在云上,OSS、OTS存储非结构化数据情况变多,比如在OSS上存储视频、音频、图像,在OTS上存储文本、标签等。我们希望在这个过程中能够进行进一步的计算,比如希望OSS存储的CSB文本文件能够在MaxCompute上直接对其进行计算。再比如,在OSS上存储的大量音频文件按照表的方式对其进行处理,对音轨进行分析,进而把分析结果结构化写到MaxCompute里,这样就完成了非结构化数据到结构化数据的转换。MaxCompute 2.0提供了外部表的方式,可以将OSS上的bucket映射成一个外部表来进行表式的处理。OTS也类似。

社区兼容与生态连接

对数据做了基本的加工处理之后,更多的处理要依赖生态工具。阿里云MaxCompute从三个层面提供开放方案。

MaxCompute多租户机制

数据安全是上云前需要慎重考虑的事情。MaxCompute从刚开始就面对多个BU、多个项目要安全共享数据的天然诉求,沉淀了一整套更细粒度的授权体系。基于项目的方式,让更多的安全得到控制的一个非常重要的原则是最小化原则:仅仅授权给最小需要数据的人,在企业里做到权责分离。上图中,中间的project可以认为是MaxCompute拥有的数据库,下面可以有多个部门去使用,但是通过不同的授权方式让不同的部门得到合理的授权,确保数据安全的权限下发到最小的部门。右下角的共享数据是所有部门都可以看到的。

高性能带来了低成本的优势,上图展示了MaxCompute和一款EMR产品的对比。

MaxCompute应用

构建完整的大数据应用架构

整个架构分为五个部分,包括数据采集、数据集成、数据开发、数据运维、数据应用的工具。基于阿里云数加平台,怎么构建完整的大数据应用架构呢?首先得支持各种数据源,得有统一的、一站式的大数据开发工具来为我们提供数据开发、数据运维、治理等。此外,基于云服务有插件管理工具、大数据计算服务为我们提供计算引擎、数仓共享平台,实现数仓应用。

上图详细介绍了五部分中阿里云提供的产品所属的位置。MaxCompute处于整个计算平台的核心位置。其前面提供了基于云上数据、云下数据通过各种开放的方式集成到阿里云中、进行统一管理。Data IDE也为我们提供三个方面的能力支持。最后是推荐、BI报表分析、个性化展现的部分。

构建新型数据仓库

数据来源是基于阿里云的ECS、RDS、OSS,通过VPC和现有的数据中心打通,通过Data IDE的数据管理功能同步上来做数据仓库,进一步来做开发。MaxCompute区别于其他大数据平台,其SQL功能是内置的。

实现个性化推荐

在各种手机APP上,都有推荐功能。借助于机器学习,加上MaxCompute和推荐引擎就能一起构建个性化推荐方案。

使用效果

在阿里云上,已经有众多的客户使用MaxCompute,并且获益。

总结

新型的数据仓库平台发展到今天已经不是一个新的话题。在今天,我们更多的关注生产环节的事情、开发效率的问题。从这两个方面,选择MaxCompute的理由可以总结为:高性能带来的高性价比,整个运行和生产环节的稳定性,数据共享和安全的平衡,应用开发的复杂度,基于数加平台构建应用的方便。

原文链接

时间: 2024-10-10 13:17:26

性能追求之路——MaxCompute2.0的前世今生的相关文章

5月19日云栖精选夜读:性能追求之路——MaxCompute2.0的前世今生

摘要: <大数据计算服务MaxCompute产品最新动态>,首先介绍了MaxCompute的发展历程和技术架构,然后对MaxCompute 2.0版本新特性和新技术进行了详细介绍. <大数据计算服务MaxCompute产品最新动态>,首先介绍了MaxCompute的发展历程和技术架构,然后对MaxCompute 2.0版本新特性和新技术进行了详细介绍. 热点热议 性能追求之路--MaxCompute2.0的前世今生 作者:大数据史记 "奔三"了,程序员,你该怎么

驱动之路——1.0

一.linux设备驱动的分类及特点 计算机系统的硬件由CPU.存储器和外设组成.驱动针对的对象都是存储器和外设. linux将存储器和外设分为3个基础大类: 字符设备:字符设备指那些必须以串行顺序依次进行访问的设备,字符设备不经过系统的快速缓冲. 块设备:块设备可以用任意顺序进行访问,以块为单位进行操作,,块设备经过系统的快速缓冲. 网络设备:网络设备面向数据包的接收和发送而设计,它并不对应于文件系统的节点. 除网络设备外,字符设备和块设备都被映射到linux文件系统的文件和目录,通过文件系统的

阿里巴巴 web前端性能优化进阶路

Web前端性能优化WPO,相信大多数前端同学都不会陌生,在各自所负责的站点页面中,也都会或多或少的有过一定的技术实践.可以说,这个领域并不缺乏成熟技术理论和技术牛人:例如Yahoo的web站点性能优化黄金法则,以及大名鼎鼎的优化大师Steve Souders.本文并非一篇讨论性能优化技术方法的文章,而更多的是对中文站搜索List页面持续两年多的前端性能优化实践的思路总结.希望对正在从事这个领域研究的前端同学能有所帮助. 简单的说,我们的性能优化实践分为三个阶段:初探期.立规期.创新期, 每个阶段

又一次redis被删库跑路,索要0.6比特币

还在和媳妇儿逛街,突然同事打来电话说redis库被清空. 于是,媳妇儿说你真是乌鸦嘴,早上还说redis如何被提权的事情. 怎么刚出来就碰上了? 会不会是你搞的? 于是无形中又背锅了. 见×××姐如此着急,边安慰,边提醒让同事查一下,是什么时候发生的事情,受害面积有多大? 但是×××姐很镇静的说,不可以啊,我们ucloud云商上的redis的机器,是禁止外网登录的,所有外网的6379端口都被禁用了. 仅限本机登录,于是,我问你有加密码嘛?×××姐说,便于程序研发效率,内网环境,自然就没有加密码.

25个增强iOS应用程序性能的提示和技巧(0基础篇)

在开发iOS应用程序时,让程序具有良好的性能是非常关键的.这也是用户所期望的,假设你的程序运行迟钝或缓慢.会招致用户的差评.然而由于iOS设备的局限性,有时候要想获得良好的性能.是非常困难的.在开发过程中,有很多事项须要记住.而且关于性能影响非常easy就忘记. 本文收集了25个关于能够提升程序性能的提示和技巧,把性能优化技巧分为3个不同的等级:0基础.中级和高级 0基础 在开发过程中,以下这些0基础技巧须要时刻注意: 1.使用ARC进行内存管理 2.在适当的情况下使用reuseIdentifi

秒杀与超卖的 性能解决之路

一.秒杀带来了什么? 秒杀或抢购活动一般会经过[预约][抢订单][支付]这3个大环节,而其中[抢订单] 这个环节是最考验业务提供方的抗压能力的. 抢订单环节一般会带来2个问题: 1.高并发 比较火热的秒杀在线人数都是10w起的,如此之高的在线人数对于 网站架构从前到后都是一种考验. 2.超卖 任何商品都会有数量上限,如何避免成功下订单买到商品的人数不 超过商品数量的上限,这是每个抢购活动都要面临的难题. 二.如何解决? 首先,产品解决方案我们就不予讨论了.我们只讨论技术解决方案 1.前端 面对高

[js高手之路]Vue2.0基于vue-cli+webpack父子组件通信教程

在git命令行下,执行以下命令完成环境的搭建: 1,npm install --global vue-cli  安装vue命令行工具 2,vue init webpack vue-demo   使用vue命令生成一个webpack项目,项目名称为vue-demo 3,cd vue-demo 切入项目 4,npm install安装package.json中的所有依赖包 5,npm run dev运行项目 一.父组件向子组件传递数据 然后删除默认的Hello.vue组件,把App.vue整理成以下

App性能学习之路(一)

写在开头: 近期由于各种原因,开始着手学习App(主要是针对Android)的专项性能测试,开此系列博客为了记录自己学习的一点一滴,同时也可以让和我一样不知道如何着手的同学小小的借鉴作用. 个人技能:Java水平一般:对自动化测试有一定的了解. 正文: 最近翻看了很多的关于App性能测试初探或者实践的帖子(可以看看Testerhome上面[Android性能测试初探]和[Android性能测试实践]),获益匪浅,故根据自己的实际水平给自己做了以下的学习计划: 第一阶段:学习Android的层级和

Qt学习之路【0】:平台的搭建与配置

平台搭建 Qt库编译 桌面应用程序 编译前准备 安装:sudo apt-get install g++  libX11-dev libXext-dev libXtst-dev 配置 ./configure -fontconfig -prefix 目录 (注:fontconfig是字体配置.prefix是qt库安装的位置) 编译及安装:make完成后执行make install 嵌入式应用程序 编译前准备 安装:sudo apt-get install g++  libX11-dev libXex