最好用的工兵铲—MaxCompute Studio,来了解下!

268 阅读8分钟

摘要: 在大数据计算北京高端峰会上,阿里云计算平台高级专家薛明深入介绍了阿里巴巴大数据计算平台开发利器—MaxCompute Studio。一站式的 IDE,可以快速完成数据浏览和管理、进行基于 SQL 和 UDF 的数据开发,更具备完善的作业分析和优化辅助等功能。本文带领大家自浅入深了解MaxCompute Studio。

演讲嘉宾简介:薛明,MaxCompute高级技术专家。

以下内容根据演讲嘉宾视频分享以及PPT整理而成。

PPT材料下载地址yq.aliyun.com/download/27…

视频地址:edu.aliyun.com/lesson_1010…

产品地址:www.aliyun.com/product/odp…

工欲善其事,必先利其器。为了享受大数据计算服务(MaxCompute)带来的特性,通常需要数据分析师或数据开发者将数据的价值挖掘出来,在这过程中,我们需要借助一些工具,例如MaxCompute Studio,Dataworks等。通俗的来讲,只要某个项目想用MaxCompute,阿里巴巴MaxCompute团队就能为他们提供合手的工具,再依靠MaxCompute团队提供的强大计算力使用合理的方式将数据价值体现出来。在MaxCompute Studio出现之前,数据上传,做UDF都是很麻烦的,这也是阿里巴巴MaxCompute团队研究MaxCompute Studio的契机。

MaxCompute Studio是什么?

下图为edit编辑界面,MaxCompute Studio本质上是一个IDE,如同在编写Java程序时,会提供给一些智能提示,帮助基于上下文补全代码。在写代码时,MaxCompute Studio也可以帮助直接定位到发生错误的代码。更重要的一点是,对于大型作业,如果将作业提交到服务器执行很长时间后,发现执行失败了,而错误仅仅在于数据类型不匹配或语句错误等,这就意味着之前的这么多数据都白跑了,这种情况极大的影响了开发效率。对此,MaxCompute Studio可以在本地提示导致作业执行失败的错误,比如表不存在,或该列类型与所需类型不匹配等,我们可以实时地修改错误,避免循环提交执行带来的效率低下等问题。MaxCompute Studio提供模板进行UDF开发,支持Java或者Python的逻辑代码在统一的IDE中进行编译,通过在本地调试,发现问题后可以直接跳转到相应的地方进行修改。在数据管理方面,MaxCompute Studio能preview出表的元数据,列等信息,另外,元数据可以缓存在本地,因此支持离线处理。


MaxCompute Studio的几大特征如下图所示。我们都希望工具能够快速解决自己遇到的问题,以此提升开发效率和体验,对于MaxCompute Studio,每当有了新的MaxCompute功能,MaxCompute Studio会第一时间为开发者提供新功能的使用。此处之外,MaxCompute Studio是完全免费,开箱即用的,是基于IntelliJ平台为MaxCompute定制构建的IDE,同时MaxCompute Studio支持SQL编程以及UDF开发。


接下来为大家介绍MaxCompute Studio产品的设计初衷以及MaxCompute Studio如何与DataWorks配合使用的问题。好比下图中挖金矿这一活动,在进行挖掘之前,我们需要选择一些工具挖到金子,之后再将金子转换成有价值的东西,这一过程被称为“The Gold Life Cycle”。将挖掘数据价值的过程与挖金子的过程进行类比,首先将数据看成金矿,在数据层面,可能需要做各种各样的事情,Data Scientist,Data Engineer等人均在数据价值挖掘中承担角色;再将MaxCompute Studio比作中国最常用,应用最广泛的工具“兵工铲”, 利用MaxCompute Studio挖掘数据的价值,之后再对数据进行加工,然后在阿里云提供的数加平台上享受大数据服务。之后,MaxCompute Studio会将UDF,SQL等功能在阿里云数加平台上进行共享和同步。


MaxCompute Studio—安装

下图展示了MaxCompute Studio的安装步骤。MaxCompute Studio基于IntelliJIDEA,同时支持PyCharm,WebStorm等平台,同时MaxCompute Studio也可以很好的应用在IntelliJIDEA社区版本上。下载完IntelliJIDEA之后,需要安装插件,查找MaxCompute Studio进行安装,安装完插件之后,重启IntelliJIDEA。到这为止,MaxCompute Studio已经安装完毕了,可以开启你的MaxCompute之旅。


MaxCompute Studio—数据管理

下图展示MaxCompute Studio提供的数据管理功能(详情请见视频分享)。在安装完MaxCompute Studio之后,首先需要以已有的MaxCompute项目创建项目空间连接,但并不是指开通了MaxCompute Project的服务,只是进行了一个关联,可以在client端随时取消关联。建立项目空间连接后,即可在项目空间浏览器中查看相关的数据结构和资源信息。我们以MaxCompute账号登陆后,可以看到所有已经开通的项目,然后进行关联;之后通过项目管理器可以很方便的查看service及下面的project,表,function,资源文件等。双击一张表后,我们可以看到表的基本信息,schema等,如果是分区表,可以根据分区进行数据浏览,同时我们可以在分区预览时,进行数据导出及数据导入,Studio 可以将CSV,TSV 等格式的本地数据文件导入到 MaxCompute 表中,也可将 MaxCompute 中表数据导出数据到本地文件。MaxCompute Studio提供在资源管理器上进行refresh的操作,也就是说表的数据结构是缓存在本地的,因此无论我们处在离线或在线的情况都可以看到智能提示。MaxCompute Studio集成了其他工具,随着MaxCompute Studio的更新,会绑定更新console版本。MaxCompute Studio提供了更多的辅助工具,如果想要创建Table,除了写create table之外,MaxCompute Studio提供更多界面化的操作,例如创建外部表,建立索引等。


MaxCompute Studio—SQL开发

下图展示MaxCompute Studio提供的SQL开发功能(详情请见视频分享)。MaxCompute Studio可以实时报告编译器错误,由于表的元数据是在本地保存的,因此离线与在线状况下的报错情况存在不同。MaxCompute Studio提供上下文相关智能提示和代码补全功能,在不同场景下将会看到不同的提示,在MaxCompute Studio中可以集成元数据,这样就可以在编写SQL语句时自动帮助开发者对于表格、字段以及函数进行提示。如果开发者在写代码时,突然忘记了语法,MaxCompute Studio应用Live Template代码模板进行代码补全。开发者可以使用全局快捷搜索查找内置的UDF等。当我们把鼠标移到某个Table时,MaxCompute Studio实时显示关联信息,帮助和跳转。MaxCompute Studio还在不断的完善中,可以通过全表扫描进行代码缺陷检测和快速修复。在MaxCompute Studio中可以选中某个子查询提交,之前提交的SQL及其状态都可以查询到。MaxCompute Studio提供的SQL功能远不止下图展示的那么多,它总是无时无刻地协助SQL开发。


MaxCompute Studio—UDF开发

下图展示MaxCompute Studio提供的UDF开发功能(详情请见视频分享)。UDF开发是我们必须进行并且需要有一些工具支撑它。虽然SQL的表达能力很强,但是有一些业务逻辑仍然需要使用编程语言或使用外部的库去处理,因此MaxCompute Studio的目标是帮助用户通过SQL语言完善表达能力,同时允许用户提供自己的UDF,例如UDAF,UDTF,UDJ等,将SQL与UDF结合起来更好的满足数据挖掘的需要。在MaxCompute Studio中可以创建UDF,修改从模板中生成的代码,调用业务逻辑,然后进行本地的调试,同时也支持将线上的表中的数据重新拿回来调试。调试完成后,通过一键部署,打包成jar,上传到MaxCompute,注册UDF,在SQL中调用,完成本地编译和提交。用户可以在提交后可查看进度以及UDF的具体状况。另外,可以通过远程在线调试调整运行失败的代码。


MaxCompute Studio—作业可视化分析

下图展示MaxCompute Studio提供的作业可视化功和分析功能(详情请见视频分享)。其实我们在之后的代码优化或是作业分析上会花一定时间。在作业分析方面,MaxCompute Studio提供了不同类型的作业热力图,可以按照时间的长短,读取的数据量,输出的数据量等不同的纬度展现作业的状态,这样我们可以有针对性的查看每个阶段存在的问题。作业回放是MaxCompute Studio的一把利器,对于某项作业,我们想知道它的运行状况,时间都花在了哪个阶段,这时候就可以采用作业回放重现作业执行过程,MaxCompute Studio允许用户回放作业执行进度的全过程,以便我们了解在哪个任务上花费了较长时间,哪个阶段处理数据或者输出数据最多等情况。我们还可以在执行计划中看到每个阶段或者全局的作业执行情况,查看正在执行的,等待执行的或者历史作业执行状况。切换到时序图tab,通过比较两个作业的执行timeline,我们能直观地了解作业执行状况,查看作业的执行路径,发现某个instance数据倾斜导致作业长尾等问题。

原文链接