工欲善其事,必先利其器。为了享受大数据计算服务(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数据倾斜导致作业长尾等问题。
作者:猫耳呀
链接:https://www.jianshu.com/p/172ed45dbb3a
共同学习,写下你的评论
评论加载中...
作者其他优质文章