丰富、连接、待集成—MaxCompute 生态再出发

简介: 2019杭州云栖大会大数据生态专场,由阿里云高级技术专家李睿博带来以 “丰富、连接、待集成— MaxCompute 生态再出发” 为题的演讲。本文围绕 MaxCompute 生态进行讲述,主要包括 “更好的工具和接口”、“连接云上各种数据”、“开放自定义引擎” 三部分。主要内容包括 MaxCompute 获得了 Tableau 官方支持,更好的搬站工具和命令行工具体验,大数据+AI 在 Python 生态部分的工作进展,以及开放自定义引擎的能力。

摘要:2019杭州云栖大会大数据生态专场,由阿里云高级技术专家李睿博带来以 “丰富、连接、待集成— MaxCompute 生态再出发” 为题的演讲。本文围绕 MaxCompute 生态进行讲述,主要包括 “更好的工具和接口”、“连接云上各种数据”、“开放自定义引擎” 三部分。主要内容包括 MaxCompute 获得了 Tableau 官方支持,更好的搬站工具和命令行工具体验,大数据+AI 在 Python 生态部分的工作进展,以及开放自定义引擎的能力。

视频直播回放 >>>
以下为精彩视频内容整理:


MaxCompute 是来自阿里巴巴的一款旗舰级大数据服务,属于全托管式。看待MaxCompute的生态有不同的角度。如上图的右半部分,将MaxCompute看作是服务,则服务外围则是相应的工具和接口,例如Java SDK、JDBC驱动等,是生态。从另一个角度,从MaxCompute的功能来看,分为两部分,一部分是计算属性,另一部分是存储属性。右下角的数据属于存储属性,左上角的引擎属于计算属性。MaxCompute作为一站式的大数据解决方案,既提供了存储能力,也提供了计算能力。从不同的角度看,整个环形构成了MaxCompute生态。

image.png

工具接口更丰富

MaxCompute是云原生的大数据服务,服务其实就是一套Rest接口,在外部通过SDK跟服务进行交互。交互分为两部分,一部分是控制,例如,提交作业时使用XML来提交作业以及获取作业的状态,另一部分是数据通道,当作业跑完之后需要在服务端获取下来时,将会大量用到PB。在SDK中大量用到XML到Java object Binding的技术,一直沿用的就是JDK自带的JAXB技术,但是随着Java版本的迭代,Jaxb会退出标准Java,而编程JavaEE的特性,需要用户额外引用包来完成一个项目,这对于使用者来说非常不方便。另一方面,对于PB来说也是如此,跨版本的兼容问题一直存在。如果需要将MaxCompute集成到某个框架中,产生了依赖库的冲突时,用户处理起来是比较难的。现在从最新版的SDK开始,包含了完整的XML Binding的实现,可以完全不依赖JAXB,在面向Java 9/10/11时,都可以无障碍运行。使得Java SDK依赖层变得很薄。JavaSDK作为上层工具的基础,包括命令行工具、JDBC等都有收益。

image.png

在JavaSDK之后,MaxCompute团队对JDBC驱动也做了改进。除了新增支持MaxCompute所有新类型之外,阿里也基于最新的JDBC驱动做了MaxCompute的Tableau到数据源的连接器。Tableau是业界中做交互式数据分析非常领先的厂商,对数据连接器的质量有非常高的要求。基于JDBC的MaxCompute Connector是完整的通过了Tableau TDVT测试,大概700个测试用例,被Tableau官方所收录。从2019.4版本开始,Tableau数据源列表中可以找到MaxCompute。

image.png

在工具层面,console提供了两处明显的改进,包括多行编辑体验和支持4 Bytes UTF-8。此外,在2019年,阿里新开发了搬站工具,是能完整表达搬站意图的工具链,如上图所示。从搬站数据开始,然后做网路情况的探测,以及数据源的探查,生成搬迁计划,最后执行。这套工具链提供了足够灵活的接口来满足各种搬站中的特殊需求,比如原来命名不够好,可以做更名。在执行层面,无论是推模式和拉模式都支持,还可以和DataWorks的数据同步集成,带给用户很好的体验。这套搬站工具已经应用到了58到家和百合网等客户。

image.png

Python生态对于AI来讲是不可或缺的一部分,在提到MaxCompute生态时,不仅仅是指Python SDK,也涉及DataFrame兼容。可以用类似DataFrame的API执行在MaxCompute上,能满足很多的场景,但不是全部,如上表中,几乎与index相关的操作都不支持。因此,在2018年,阿里开源了一个新的Mars引擎,是基于Tensor分布式引擎,可以更好的实现大数据的科学计算。同时,Mars也非常适合作为大数据平台和其他系统,比如机器学习、图计算系统的桥梁。

image.png

如上图所示,展示了使用Mars的例子,其中Mars作为中间层,用到Mars一系列新的特点,左侧为图计算系统,有自己的存储和表达,可以生成高维array,然后,根据自己的index将Tensor写到下一步,最后,数据会进入到TenserFlow进行深度学习的训练,中间的过程还需要经过大数据系统的补充,用来补充维度。

image.png

上图为Mars+DCPM在某种负载条件下的工作,输入数据分别为250G和500G,负载规模为矩阵乘运算,问题规模是平方级的。当矩阵变大一倍时,计算规模会相应的变大四倍。在使用DCPM后,当问题规模扩大时,性能也会有所提升。例如,在500G的场景下,可以做到25%的性能提升。

云上数据可连接

image.png

在阿里巴巴内部,99%的结构化数据都存储在MaxCompute上,且能够支撑EB级别的存储。对于公共云上具体的用户来讲,不可能全部都是结构化的数据,也有非结构化的场景,比如图中的OSS和OTS。很久以前,MaxCompute就可以支持外表,但外表在很长一段时间里只支持OSS和OTS,这与网络的基础架构是相关的。MaxCompute、OSS、OTS都是云原生的基础服务,在网络上随时随地都可以被访问和打通。一直以来,缺少的是VPC里的服务,如上图中的右部分,因为这些服务不是云原生,不具备在官网上开放的能力。但是随着更多的用户对这方面的需求的增加,MaxCompute已经开始支持以外表、Spark/Flink、SQL UDF的形式访问VPC里的数据。

image.png

上图为Spark访问RDS的一个例子。在Spark on MaxCompute中访问线下VPC里的ADS需要两步,第一步,在RDS中添加一套白名单,左侧为MaxCompute可能会访问出来的IP白名单,第二步,在启动Spark作业之前,将VPC里必要的信息填充进去。如右侧所示。
这样的VPC打通开启了更多应用场景,包括可以直读Kafka实时数据流,可以联合计算RDS维度表,或者使用Redis加速引擎执行等。当VPC打通的网络和带宽足够稳定时,阿里有可能会实现云上和云下混合的架构。

image.png

开放引擎待集成

image.png

上图为MaxCompute的联合计算平台。将MaxCompute的计算能力包装成各种开源引擎都可以适配,好处是可以统一的管理,利用统一的资源池,直接可以在MaxCompute上运行各种开源引擎编写的作业。

image.png

在2019年4月,阿里正式将Spark推向了公共云,试点国内几个region,收到了很高的欢迎度。现在MaxCompute已经实现全域可用,标配开箱即用。MaxCompute最初是一个离线的数据系统,擅长运行大规模作业,现在使用联合计算平台作业的形式,将Spark和Flink引入进来,开始支持流计算属性。

image.png

最初,MaxCompute Spark为了能够在MaxCompute上运行,是在原生Spark上做了一些改动的。我们也看到有一些用户提到,对于他们也有过改动的Spark,是否能够兼容。因此我们希望做到对开源引擎核心代码的无入侵,这意味着,用户在开源引擎上做的修改也可以不经过改动可以运行在阿里的平台上。如上图所示,在Spark上做切分,其中,一部分为Engine Core,一部分是引擎与MaxCompute数据源对接的部分,一部分是与资源对接的部分。数据方面,抽象了Cupid SDK方便用户开发与阿里平台对接的部分。资源方面则提供YarnClient的原地替换,对接阿里基于飞天的分布式系统的调度接口。目前可以实现的是,Spark 2.4/Flink 1.9的原生Jar包可以无改动直接使用。
因此,MaxCompute完全可以向用户开放自定义引擎,用户通过下载原生或自己定制的引擎包,创建自定义引擎,然后向这个自定义引擎提交作业。

更多MaxCompute产品与技术信息请访问官网 >>>

欢迎加入“MaxCompute开发者社区”,扫码或点击链接均可加入 https://h5.dingtalk.com/invite-page/index.html?bizSource=____source____&corpId=dingb682fb31ec15e09f35c2f4657eb6378f&inviterUid=E3F28CD2308408A8&encodeDeptId=0054DC2B53AFE745
image.png

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
16天前
|
SQL 分布式计算 Apache
生态 | Apache Hudi集成Apache Zeppelin
生态 | Apache Hudi集成Apache Zeppelin
30 0
|
1月前
|
SQL 分布式计算 DataWorks
maxcompute配置问题之连接oss报错如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
25 0
|
1月前
|
分布式计算 大数据 MaxCompute
maxcompute配置问题之连接超时如何解决
MaxCompute配置是指在使用阿里云MaxCompute服务时对项目设置、计算资源、存储空间等进行的各项调整;本合集将提供MaxCompute配置的指南和建议,帮助用户根据数据处理需求优化其MaxCompute环境。
25 2
|
1月前
|
搜索推荐 物联网 数据安全/隐私保护
智能家电设备连接语音助手集成
智能家电设备连接语音助手集成
45 1
|
2月前
|
SQL 安全 BI
钉钉连接平台集成自动化让企业降本增效
钉钉连接平台(iPaas)具备强大的产品能力、丰富的解决方案、客户案例和权威认证
|
3月前
|
大数据 Scala
大数据生态思维导图____2021最新最全Scala语法思维导图!(待更新)
大数据生态思维导图____2021最新最全Scala语法思维导图!(待更新)
15 0
|
3月前
|
分布式计算 大数据 Spark
大数据生态思维导图____2021最新最全Spark生态圈思维导图!
大数据生态思维导图____2021最新最全Spark生态圈思维导图!
18 0
|
3月前
|
分布式计算 资源调度 大数据
【大数据技术Hadoop+Spark】Spark架构、原理、优势、生态系统等讲解(图文解释)
【大数据技术Hadoop+Spark】Spark架构、原理、优势、生态系统等讲解(图文解释)
87 0
|
3月前
|
存储 分布式计算 安全
【云计算与大数据计算】大数据物理、集成、安全架构及阿里云飞天系统架构讲解(超详细)
【云计算与大数据计算】大数据物理、集成、安全架构及阿里云飞天系统架构讲解(超详细)
249 0
|
4月前
|
Java 专有云 数据库连接
专有云配置vertica数据源,测试连通性已连通,但是在配置数据集成时,连接报错,报vertica[vjdbc]100176错误,连接vertica数据库错误
专有云配置vertica数据源,测试连通性已连通,但是在配置数据集成时,连接报错,报vertica[vjdbc]100176错误,连接vertica数据库错误
43 1

相关产品

  • 云原生大数据计算服务 MaxCompute