性能追求之路——MaxCompute2.0(原ODPS)的前世今生

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

 

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

 

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

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的理由可以总结为:高性能带来的高性价比,整个运行和生产环节的稳定性,数据共享和安全的平衡,应用开发的复杂度,基于数加平台构建应用的方便。

购买&试用MaxCompute,请扫二维码加入钉钉群。

时间: 2024-09-19 09:19:34

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

MaxCompute2.0性能评测:更强大、更高效之上的更快速

MaxCompute2.0(原Odps):通过性能评测,MaxCompute2.0离线计算比同类产品Hive2.0 on Tez性能优势快约90%以上:MaxCompute2.0从新一代执行引擎到编译引擎.基于代价的优化器全流程针对性能提升做出了卓越改进.        本次评测侧重于已发布的MaxCompute2.0与离线处理同类竞品及线上稳定版本的性能对比,通过测试我们看到MaxCompute2.0在功能上更强大.使用和发布更新更高效.开放生态的同时针对线上作业占比80%以上的Sql以及其中

【大数据干货】数据进入阿里云数加-大数据计算服务MaxCompute(原ODPS)的N种方式

免费开通大数据服务:https://www.aliyun.com/product/odps 想用阿里云大数据计算服务(MaxCompute),对于大多数人首先碰到的问题就是数据如何迁移到MaxCompute中.按照数据迁移场景,大致可以分为批量数据.实时数据.本地文件.日志文件等的迁移,下面我们针对每种场景分别介绍几种常用方案. 大数据计算服务(MaxCompute) 快速.完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海

React 应用的性能优化之路

本文讲的是React 应用的性能优化之路, 要点梗概 React 应用主要的性能问题在于多余的处理和组件的 DOM 比对.为了避免这些性能陷阱,你应该尽可能的在shouldComponentUpdate 中返回 false . 简而言之,归结于如下两点: 加速 shouldComponentUpdate 的检查 简化 shouldComponentUpdate 的检查 免责声明! 文章中的示例是用 React + Redux 写的.如果你用的是其它的数据流库,原理是相通的但是实现会不同. 在文章

MaxCompute(原ODPS)开发入门指南——数据上云篇

MaxCompute(原ODPS)开发入门指南--数据上云篇 写在最前面 >>>进入了解更多>>>阿里云数加·MaxCompute大数据计算服务. 根据<MaxCompute(原ODPS)开发入门指南--计量计费篇>的了解,大家清楚了MaxCompute可以做什么,计费模式如何,想必大家也开通了MaxCompute想进行一次POC,但是大家遇到第一个问题一定是我的数据如何上云? 可通过多种方式数据流入MaxCompute MaxCompute(原ODPS)提

MaxCompute2.0索引优化实践

摘要:2017云栖大会阿里云大数据计算服务(MaxCompute)专场,阿里云高级专家戴谢宁带来MaxCompute的索引与优化实践分享.本文主要从MaxCompute数据模型开始谈起,接着分享了哈希分片和区域分片,着重分析了索引优化和join优化,并且列出了应用实例,最好作出了简要总结.   以下是精彩内容整理: MaxCompute 除了是计算引擎之外,它也是个存储引擎,阿里巴巴99%数据都在这个平台上.那么,怎么去优化存储效率,从而提高计算效率是我们一直努力的目标. MaxCompute的

MaxCompute(原ODPS)开发入门指南——计量计费篇

MaxCompute(原ODPS)开发入门指南 写在最前面 >>>进入了解更多>>>阿里云数加·MaxCompute大数据计算服务. 近期介绍大量数据上云用户关于MaxCompute的一些问题,现就MaxCompute产品线的一些工具栈可以和大家进行交流,也欢迎大家拍砖和来扰,一起学习一起进步!也希望能够在帮助到大家! 系列文章会涉及到的内容 0.MaxCompute概述:是什么?可以做什么?收费模式? 1.数据上云工具介绍:Log.Logstash.Flume.Flu

MaxCompute(原ODPS)开发入门指南——数据开发工具篇

MaxCompute(原ODPS)开发入门指南--数据开发工具篇 写在最前面 >>>进入了解更多>>>阿里云数加·MaxCompute大数据计算服务. 大家在使用大数据计算服务MaxCompute时,最头疼就是我现在已有的数据如何快速上云?我的日志数据如何采集到MaxCompute上?等等...具体详见<MaxCompute(原ODPS)开发入门指南--数据上云篇>. 但是数据在MaxCompute上了之后,问题又来了,我怎么基于上面进行快速的数据开发,构建

从MapReduce的执行来看如何优化MaxCompute(原ODPS) SQL

SQL基础有这些操作(按照执行顺序来排列): from join(left join, right join, inner join, outer join ,semi join) where group by select sum distinct count order by 如果我们能理解mapreduce是怎么实现这些SQL中的基本操作的,那么我们将很容易理解怎么优化SQL写法.接下来我们一个一个的谈: from 这个操作是在解析过程中就完成了,目的就是找出输入的表(文件). join(

Web前端性能 优化进阶路

简单的说,我们的性能优化实践分为三个阶段:初探期.立规期.创新期, 每个阶段大概持续半年左右,有足够的时间形成一些优化思路的沉淀. 一:初探期2010年底我们开始接手搜索List页面,这是中文站历史最为悠久的页面之一,当时它的生命体征正如它的年龄一样,非常虚弱:当时的基调网络监控显示,页面的完全加载的时间是16秒!作为以"快"为核心业务指标的搜索页面,这个状态显然已是无法承担重任了.性能是一定要优化的,但我们也面临着大多数前端同学所面临的共性问题 - 业务需求紧张,况且我们是 刚刚接手