原文链接:http://click.aliyun.com/m/13999/MaxCompute2.0(原Odps):通过性能评测,MaxCompute2.0离线计算比同类产品Hive2.0 on Tez性能优势快约90%以上;MaxCompute2.0从新一代执行引擎到编译引擎、基于代价的优化器全流程针对性能提升做出了卓越改进。

本次评测侧重于已发布的MaxCompute2.0与离线处理同类竞品及线上稳定版本的性能对比,通过测试我们看到MaxCompute2.0在功能上更强大、使用和发布更新更高效、开放生态的同时针对线上作业占比80%以上的Sql以及其中占比约50%的Sql离线批量计算性能有极大提升。
一,新一代执行引擎
       MaxCompute2.0开发了新一代执行引擎。新的执行引擎是是基于代码生成(Codegen)的执行引擎,同时采用向量化执行和缓存友好的算法。我们可以看到新一代执行引擎执行比开源社区新一代离线计算执行引擎HiveOnTez性能对比优势显著。
       我们记录下在MaxCompute2.0新一代执行引擎和社区新一代离线计算执行引擎HiveOnTez中相同数据量上相同数量执行实例处理的操作时间(单位是秒),下面的表格能够体现出新的新一代执行引擎的性能。

可以看到,在总体数据量T级别instance数量(百级别)情况,相同数据量相同数量的instance执行性能,MaxCompute2.0执行的平均执行性能优于Hive2.0OnTez(Hive2.0已调整最优):
              1- sum with group性能快速1倍
              2-sort-merge join提升约2倍以上
              3-hashjoin提升在1倍以上
              4-stremline提升50%以上
二,新的编译引擎和基于代价的优化器
       MaxCompute2.0开发了全新的解析器和引入开发了基于代价的优化器,在兼容Hive语法和语义和开发应用各种基于规则的优化器(Rbo)的前提下,引入和开发了基于统计数据指导下及其知道下更精确的optimizer组件,增加了全新的优化规则。
       在新的编译引擎和基于代价的优化器下端至端的执行性能进行评测,MaxCompute2.0离线计算对比社区同类产品Hive2.0 on Tez在最优执行下TPC-H benchmark数据: 

测试环境:    1. 集群规模:30台机器测试集群,其中20台计算节点    2. 机器配置:22core\96G\千兆全双工网络\每节点12块1TB SATA硬盘    3. 软件版本:MaxCompute2.0Sp24rc5/hive2.0onTez/MaxCompute1.0Sp23s14/hive2.0onMr    4. 数据规模:1TB(zlib压缩)

为了保证数据的合理性,性能测试数据都是每个测试案例完成多轮测试的稳定值,测试搭建使用独立的性能评测集群,测试前清理恢复初始环境,多轮测试非连续执行,连续执行完整个测试集合后再执行下一轮的测试集合。
       图中整体对比数据为:
              1- MaxCompute2.0离线计算比同类产品Hive2.0 on Tez性能优势快约90%以上
              2.MaxCompute2.0执行95%以上基准sql执行比hive快,同时我们分析了内部执行细节,去除调度等其他消耗时间,MaxCompute2.0针对执行的性能改进比Hive2.0提升在114%以上
              3-MaxCompute2.0比MaxCompute1.0性能提升68%
              4-MaxCompute2.0比Hive2.0 on Mr整体优势提升190%,其中77%的基准sql性能提升2x以上

三,MaxCompute2.0性能提升及后续性能衍进期待       1. 兼容社区产品、兼容hive的所有数据类型、遵循SQL 2003、支持多维分组       2. 研发whole-stage code generation,即通过在运行期间优化那些拖慢整个查询的代码到一个单独的函数中,消除函数调用以及利用CPU寄存器来存放那些中间数据等性能消耗       3. 更多得优化规则及已有规则的更新升级, Join Reordering全面默认开启,Range partitioning支持等

基于飞天的一代执行引擎性能有极大提升外,MaxCompute2.0已上线的基于rbo和cbo执行性能优化:
              1- 裁剪规则:列裁剪、分区裁剪、子查询裁剪
              2- 下推/合并规则:谓词下推
              3- 去重规则:Project去重、Exchange去重、Sort去重
              4- 常量折叠/谓词推导
              5- 关联优化:Auto MapJoin、 Skew Join;实现BroadcastHashJoin、ShuffleHashJoin、MergeJoin;Join Reordering
              6- 聚合优化: HashAggregate、SortedAggregate、Deduplicate
              7- 处理优化: GroupBy下推、Exchange下推、Sort下推

转载于:https://blog.51cto.com/11778640/1906615

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

  1. python哪个更强大_Ruby和Python哪个更强大?学习分析

    Ruby和Python同属于编程语言,这两大编程语言之间有很多相似之处,因此很多人在学习编程语言的时候经常会纠结选择Python还是Ruby,那么Ruby和Python哪个更强大?我们一起往下看. P ...

  2. summerDao-比mybatis更强大无需映射配置的dao工具

    summerDao是summer框架中的一个数据库操作工具,项目地址:http://git.oschina.net/xiwa/summer. 怎么比mybatis更强大,怎么比beetlsql更简单, ...

  3. 表格存储TableStore2.0重磅发布,提供更强大数据管理能力

    为什么80%的码农都做不了架构师?>>>    表格存储TableStore是阿里云自研的面向海量结构化和半结构化数据存储的Serverless NoSQL多模型数据库,被广泛用于社 ...

  4. 华为鸿蒙吃鸡,华为鸿蒙 OS 2.0 性能简测:极致画质下的吃鸡王者更胜 EMUI 11

    IT之家 5 月 1 日消息 华为本周已经向部分拥有测试资格的用户推送了 HarmonyOS 2.0 开发者公测版更新,虽然部分功能体验与基于安卓 10 的 EMUI11 没有太大差别,但似乎已经给我 ...

  5. 华为鸿蒙系统吃鸡,华为鸿蒙OS 2.0性能简测:极致画质下的吃鸡王者更胜 EMUI 11,且功耗还低...

    IT 之家 5 月 1 日消息 华为本周已经向部分拥有测试资格的用户推送了 HarmonyOS 2.0 开发者公测版更新,虽然部分功能体验与基于安卓 10 的 EMUI11 没有太大差别,但似乎已经给 ...

  6. 华为鸿蒙吃鸡,华为鸿蒙 OS 2.0 性能简测:极致画质下的吃鸡王者更胜 EMUI 11,且功耗还低...

    IT 之家 5 月 1 日消息 华为本周已经向部分拥有测试资格的用户推送了 HarmonyOS 2.0 开发者公测版更新,虽然部分功能体验与基于安卓 10 的 EMUI11 没有太大差别,但似乎已经给 ...

  7. 开发使用air还是pro_「APPSO」第四代 iPad Air 评测:性能向 Pro 看齐,续航比 Pro 更强,还有人说不够香?...

    在许多人眼中,第四代 iPad Air(下文称 iPad Air 4)是苹果 2020 年秋季第一场发布会,最有看点的一台机器. 作为 iPad Pro 2020 款用户,老实说在刚看到 iPad A ...

  8. 开发使用air还是pro_「爱范儿」第四代 iPad Air 评测:性能向 Pro 看齐,续航比 Pro 更强,为啥有人说不香?...

    在许多人眼中,第四代 iPad Air(下文称 iPad Air 4)是苹果 2020 年秋季第一场发布会,最有看点的一台机器.作为 iPad Pro 2020 款用户,老实说在刚看到 iPad Ai ...

  9. 鸿蒙2.0 王者荣耀,华为鸿蒙 OS 2.0 性能简测:极致画质下的吃鸡王者更胜 EMUI 11,且功耗还低...

    IT之家 5 月 1 日消息 华为本周已经向部分拥有测试资格的用户推送了 HarmonyOS 2.0 开发者公测版更新,虽然部分功能体验与基于安卓 10 的 EMUI11 没有太大差别,但似乎已经给我 ...

最新文章

  1. 深入理解Java 8 Lambda表达式(Oracle官方文档版)
  2. php的服务器变量$SERVER以及防止$_SERVER['PHP_SELF']造成的XSS漏洞攻击及其解决方案
  3. MySQL抓包工具:MySQL Sniffer【转】
  4. [ATF]-ATF的代码学习篇-一篇就够了
  5. FIELD SYMBOL和TYPE REF TO的用法和比较
  6. 知乎:GAN 的发展对于研究通用人工智能有什么意义?
  7. 想学大数据,应该从什么语言开始学?
  8. php判断值是否为空然后定义,判断php变量是不是定义,是否为空
  9. Storm与Spark区别
  10. 个人使用mysql_MySql使用总结
  11. oracle恢复init文件,详解NBU异机恢复ORACLE数据库
  12. 基于深度学习的视觉 SLAM 综述
  13. 哪里可以免费下载ps字体?【附字体安装教程】
  14. kali linux添加环境变量
  15. windows10 8081端口被占用如何解决
  16. 使用和风天气接口获取天气信息
  17. vue中添加mp3音频文件
  18. 动环监控系统的服务器配置,动环监控系统服务器维护
  19. 地图上如何量方位角_地图投影怎么做到按条件(等角、等面积、等距)投影的?...
  20. 数学美 之 判断线段相交的最简方法

热门文章

  1. linux图形图像三剑客,就linux三剑客简单归纳
  2. 25 linux ndk 头文件_正点原子Linux第二十五章RTC实时时钟实验
  3. 剑指offer07.重建二叉树
  4. netbeans卸载 linux,NetBeans_6.1自己使用。(linux-ubuntu下)
  5. 更易于使用的Retrofit(不用写注解)
  6. C#教程8:面向对象编程【02】
  7. C#教程4:数据类型
  8. 什么是html的编码方式,HTML网页中“上”是什么编码方式啊?网页中&# 爱问知识人...
  9. 基于Smith预估器的PID控制在房间湿度控制
  10. 原生js写三级联动 java_原生js三级联动的简单实现代码