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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 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

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute 生态系统中的数据集成工具
【8月更文第31天】在大数据时代,数据集成对于构建高效的数据处理流水线至关重要。阿里云的 MaxCompute 是一个用于处理大规模数据集的服务平台,它提供了强大的计算能力和丰富的生态系统工具来帮助用户管理和处理数据。本文将详细介绍如何使用 DataWorks 这样的工具将 MaxCompute 整合到整个数据处理流程中,以便更有效地管理数据生命周期。
55 0
|
1月前
|
存储 SQL 分布式计算
Java连接阿里云MaxCompute例
要使用Java连接阿里云MaxCompute数据库,首先需在项目中添加MaxCompute JDBC驱动依赖,推荐通过Maven管理。避免在代码中直接写入AccessKey,应使用环境变量或配置文件安全存储。示例代码展示了如何注册驱动、建立连接及执行SQL查询。建议使用RAM用户提升安全性,并根据需要配置时区和公网访问权限。具体步骤和注意事项请参考阿里云官方文档。
|
2月前
|
消息中间件 分布式计算 大数据
RabbitMQ与大数据平台的集成
【8月更文第28天】在现代的大数据处理架构中,消息队列作为数据传输的关键组件扮演着重要的角色。RabbitMQ 是一个开源的消息代理软件,它支持多种消息协议,能够为分布式系统提供可靠的消息传递服务。本篇文章将探讨如何使用 RabbitMQ 与 Hadoop 和 Spark 进行集成,以实现高效的数据处理和分析。
20 1
|
2月前
|
分布式计算 大数据 数据处理
【大数据管理新纪元】EMR Delta Lake 与 DLF 深度集成:解锁企业级数据湖的无限潜能!
【8月更文挑战第26天】随着大数据技术的发展,Apache Spark已成为处理大规模数据集的首选工具。亚马逊的EMR服务简化了Spark集群的搭建和运行流程。结合使用Delta Lake(提供ACID事务保证和数据版本控制)与DLF(加强数据访问控制及管理),可以显著提升数据湖的可靠性和性能。本文通过一个电商公司的具体案例展示了如何在EMR上部署集成Delta Lake和DLF的环境,以及这一集成方案带来的几大优势:增强的可靠性、细粒度访问控制、性能优化以及易于管理的特性。这为数据工程师提供了一个高效且灵活的数据湖平台,简化了数据湖的建设和维护工作。
45 1
|
3月前
|
消息中间件 监控 Kafka
AutoMQ 生态集成 Redpanda Console
今天分享的内容是如何通过 Redpanda Console对 AutoMQ 集群状态进行监控,以提高系统的可维护性和稳定性。
43 2
AutoMQ 生态集成 Redpanda Console
|
2月前
|
机器学习/深度学习 设计模式 人工智能
面向对象方法在AIGC和大数据集成项目中的应用
【8月更文第12天】随着人工智能生成内容(AIGC)和大数据技术的快速发展,企业面临着前所未有的挑战和机遇。AIGC技术能够自动产生高质量的内容,而大数据技术则能提供海量数据的支持,两者的结合为企业提供了强大的竞争优势。然而,要充分利用这些技术,就需要构建一个既能处理大规模数据又能高效集成机器学习模型的集成框架。面向对象编程(OOP)以其封装性、继承性和多态性等特点,在构建这样的复杂系统中扮演着至关重要的角色。
54 3
|
2月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】Redis连接无法建立问题的排查(注:Azure Redis集成在VNET中)
【Azure Redis 缓存】Redis连接无法建立问题的排查(注:Azure Redis集成在VNET中)
|
2月前
|
Kubernetes 监控 Shell
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
|
3月前
|
JSON 分布式计算 大数据
MaxCompute操作报错合集之连接环境时,出现报错:TypeError: access_id and secret_access_key,该怎么解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
3月前
|
关系型数据库 分布式数据库 数据库
粤腾通信「粤腾DCIM」通过PolarDB产品生态集成认证!
近日广州粤腾通信科技有限公司「粤腾DCIM系统软件V2.0」通过PolarDB产品生态集成认证!

相关产品

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