一条SQL在 MaxCompute 分布式系统中的旅程

本文深入探讨了SQL在MaxCompute分布式系统中的旅程,包括MaxCompute的超大规模计算能力、企业级SQL引擎MaxCompute UniSQL、分布式智能调度执行框架以及新一代列式存储引擎AliOrc。文章介绍了SQL的优化功能,如脚本模式、参数化视图、IF/ELSE等,以及SQL性能提升的Adaptive Join和Advanced Shuffle。此外,还详细阐述了企业级分布式智能调度执行框架的动态智能执行和高效作业管理策略。最后,提到了AliOrc在列式存储、并行化编码技术和异步并行IO方面的优化,以提升整体性能。
摘要由CSDN通过智能技术生成

摘要:2019杭州云栖大会大数据技术专场,由阿里云资深技术专家侯震宇、阿里云高级技术专家陈颖达以及阿里云资深技术专家戴谢宁共同以“SQL在 MaxCompute 分布式系统中的旅程 ”为题进行了演讲。本文首先介绍了 MaxCompute 计算平台及其特点、超大规模企业级SQL引擎和其功能。然后讲解了如何构建企业级分布式智能调度执行框架。最后介绍了新一代列式存储引擎AliOrc及优化方式。

以下为精彩视频内容整理:


MaxCompute–面向企业的超大规模计算

  • 全托管,多租户,超大规模平台

    MaxCompute拥有庞大的用户群体,支持阿里集团的各个关键业务和复杂场景,支持多个互联网新兴企业核心业务,以及支持关系国计民生、国家安全的关键行业。同时拥有超大规模计算存储,包括单日千万以上计算任务、多EB级别存储量、10万台以上服务器以及全球超过十个数据中心。
  • 企业级高性能计算引擎

    TPC-BigBench是更面向于大数据运算的BigBench,覆盖一些复杂类型,包括机器学习场景,更贴近于大数据场景的业务。在2017年,阿里的TPC-BigBench首个通过100TB 验证的引擎。在2018年,TPC-BigBench 首个达到18000+引擎。在2019年,进一步提升到 25000+,正式公布到TPC官网。

MaxCompute不仅仅在阿里集团内部被广泛的使用,也支撑着许多著名的互联网方面的厂商,以及关系到国计民生、国家安全方面的应用。

超大规模企业级SQL引擎–MaxCompute UniSQL

一条SQL在分布式系统中的旅程



上图所示为运行SQL任务中的大概流程。首先使用一条SQL语句,通过Compile,可以生成一个逻辑的执行计划,这个逻辑的执行计划是计算机能够理解的,再经过Optimize过程,无论逻辑计划有多复杂,都要翻译成针对目前集群和运行时刻的Runtime最优的物理执行计划,对于每一个Optimize不一定与原始的SQL相关。然后经过计算调度框架,使得合理快速的安排执行任务。由调度框架做的安排应用到每台机器之后,每台机器都会有一个SQL的运行时(Runtime Engine),它是真正能够理解物理执行计划的,并且一步一步把数据从Storage中读出来,再经过Shuffle得到结果,最后返回到Storage中。可以看出,运行时本身的性能是非常关键的,仅仅一条SQL语句有可能消耗几百T的data,这时,Storage的性能也是至关重要的。

SQL的功能

  • Not Only SQL – 脚本模式

上图为SQL的一个脚本,上面是配置语句,下面是创建的表,每句都是SQL的语句,但是这些SQL语句都可以串在一个脚本里,当表述一个非常复杂的逻辑时,不需要把脚本写成嵌套的形式,这种方式更灵活,能够支撑更复杂的业务场景。阿里内部有非常复杂的业务场景,过去不支持这种方式时,用户是使用嵌套的方式,使脚本变得复杂和扭曲,并且有大量的重复,以致不能解决时,就会将其拆分,再通过外部调动的方式串连起来。因为人如果承受不了维护的代价,就要引用额外性能的开销,后面的语句就要引用前

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值