阿里巴巴大数据 —玩家社区 + 关注
手机版

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

  1. 云栖社区>
  2. 阿里巴巴大数据 —玩家社区>
  3. 博客>
  4. 正文

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

大数据史记 2017-05-18 22:38:28 浏览4594 评论0

摘要: 在2017云栖大会大数据专场,阿里云高级专家云郎分享了《大数据计算服务MaxCompute产品最新动态》。他首先介绍了MaxCompute的发展历程和技术架构,然后对MaxCompute 2.0版本新特性和新技术进行了详细介绍。

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

 06ddca07240597a22b2d00c2f110cf49d4896aaf

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

 

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

MaxCompute

73ca026b0190efe327a3146b82d4f3a8137ec83e

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

发展历程

3218edcd00783d2b45a50fcd4e94c32c2086f9b2

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

技术架构

ad309978b95b9637509e9d548dd28e9c6ef6636e

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

MaxCompute的特性

917f022cf5e94fa3a9c924ff8a1ba14f2f128143

MaxCompute的特性如上图所示。

781400c9e2ea1481f0494491a819e8ae541ac20e

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

MaxCompute 2.0

e0c7ac2a77d2d6f93441caf279c7b9ebcd5374eb

最新推出的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。

5a674a2950ebd8e3c8a606b33749ea8c8610b522

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

非结构化数据处理框架

168487215b633d5f8a5e0d75ca35adab583e0c19

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

社区兼容与生态连接

747ced8f9fe58428286219a4508c7ac36c06c2be

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

MaxCompute多租户机制

5d23a7ff36fe0978a6de124a8372e0088b0e0389

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

9baa50b8906f51f03a05dd41c8cc08716dbfee10

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

MaxCompute应用

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

d1c2012ae5322f3b9cf58d9f24afb7fa1f460921

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

7affb7713416e544a3a547303f194870375be7a2

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

构建新型数据仓库

63e0171f86db5698539287438068295d7819a8a9

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

实现个性化推荐

1b96774216af7a3564e31e849ab0f9563df89333

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

使用效果

0eb6522c3852d7add949f2ceb9e9b8652ea28820

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

总结

1b1a72c5c9b6d3311049ecf0e461568346817fcd

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


欢迎加入“数加·MaxCompute购买咨询”钉钉群(群号: 11782920)进行咨询,群二维码如下:

IMG_3471



 6c4b69af9fd1b465628b63fcee73224de0b62357

阿里巴巴大数据-玩家社区 https://yq.aliyun.com/teams/6/

---阿里大数据博文,问答,社群,实践,有朋自远方来,不亦说乎……

bba01b493e1c5d904e882b1c380673c6ebe49a98

【云栖快讯】一站式开发者服务,海量学习资源免费学  详情请点击

网友评论