使用 MaxCompute Studio 开发大数据应用

MaxCompute(原ODPS)是阿里云自主研发的分布式大数据处理平台,为用户提供了开放的编程接口和 SDK,允许用户在其强大灵活的存储和计算能力之上开发自己的数据应用和系统,创造更大的价值。 为了能让这一过程更加顺畅高效,随着 MaxCompute 2.0 的发布,我们提供了 MaxCompute Studio,一套基于流行的集成开发平台 IntelliJ IDEA 的开发插件,让用户在集成开发环境(IDE)中更方便地进行数据开发。

MaxCompute Studio 为开发者提供了良好的开发体验,支持 MaxCompute 项目浏览、SQL 脚本、用户自定义函数(UDF)、 MapReduce 程序的开发和智能提示、作业执行状态展示等功能,本文将展开进行介绍。

MaxCompute 项目浏览器 (Project Explorer)

MaxCompute 通过表(Table)来存储数据,以项目空间(Project)的形式来组织表和用户自定义函数(UDF)等其他资源。开发者在开发过程中会经常需要访问项目空间:列举表、查询表结构和元数据、预览表中现有数据、向表中导入导出数据等。以前这些操作主要都只能通过命令行工具或者管理员的管理工具才能获得,现在开发者都可以通过 MaxCompute Studio 提供的项目浏览器(Project Explorer)来完成这些操作。

在 IntelliJ IDEA 中安装 MaxCompute Studio 后,可以在 MaxCompute Project Explorer 窗口中添加一个到 MaxCompute 项目空间的连接,输入用户 AccessID/AccessKey 以及项目空间名称和 Endpoint 以后就可以在 Project Explorer 中浏览项目空间的表、视图、自定义函数、资源文件等信息。 双击一个表可以可以查看对应的表结构(Schema)和预览数据(如上图所示)。

所有在 MaxCompute Studio 添加过的项目连接,都会在用户本地的文件系统生成一份表结构的缓存,但不包含数据。有了这份本地缓存,即使在断网的情况下,MaxCompute Studio 也可以为用户在编写 SQL 代码时提供数据定义、数据类型等方面的检查和提示。用户可以在网络联通的情况下通过手动刷新的方式更新本地缓存。Studio 也会在用户出现由于数据表结构不对引起的编译检查错误时提示用户刷新缓存,与 Server 端的 Schema 保持一致。

通过 Project Explorer,开发者可以非常轻松地了解工作的项目空间中的数据表的结构和数据,通过搜索功能迅速找到想要查看的表。除此之外,开发者也可以利用 Project Explorer 来查看用户自定函数(UDF)的函数声明甚至源码。在 Project Explorer 中找到定义在项目空间中的 UDF,可以看到所有的函数声明,双击就可以在 IDE 中查看反编译后的函数代码。如果开发者本地有原有的源代码,也可以在 IDE 中进行关联,修改后可以重新上传到服务器。

Project Explorer 提供了数据上传下载的用户界面,可以方便地把本地数据上传到 MaxCompute 或者下载已有的预览数据。如果觉得这还不够,用户完全可以在集成的 IDE 中通过右键菜单打开一个 MaxCompute 客户端窗口,进行各种熟悉的命令行操作,如下图所示。

增强的 SQL 代码编辑器

MaxCompute 支持通过 SQL 查询语言来访问和处理系统中的数据。脚本编辑是 Studio 提供的核心功能之一,充分利用本地编译生成的抽象语法树(AST)来提升脚本开发效率和开发体验。提供智能代码提示,语法高亮,语法检查,风险及错误提示,类型检查等一系列功能。我们的目标是让开发 SQL 以及用户自定义函数(UDF)拥有和其他高级编程语言一样的高效体验。下面将对 Studio 中的代码编辑功能作出详细介绍。

脚本管理功能

基于 Studio,用户可以 Intellij Project 的方式本地管理 SQL 脚本。在 IntelliJ 环境中创建一个 MaxCompute 开发项目,可以和其他 Intellij Module 一样获得 IDE 提供的代码管理的各种功能:如 Git 集成,运行配置管理,编译输出文件管理等。 熟悉 IntelliJ 的开发者可以很容易地用自己熟悉的方式开发和管理 SQL 程序。

代码补全功能

Studio 提供了基于抽象语法树(AST)的代码补全功能,能够根据脚本上下文及关联的 MaxCompute Project 给出智能提示,从而大大提高脚本开发效率。让你摆脱写 MaxCompute SQL 的白板时代,再也不用来回对照 Table Schema 来编辑脚本了。

关键字提示及补全

基于元数据的 Table name 补全

基于元数据的 Table column 补全

Function name 补全,可查看参数列表

语法高亮功能

Studio 提供基于语法树的语法高亮功能,允许用户为不同类型 token 配置不同的高亮方案,极大地增强了代码的可读性,提升开发舒适度。与一般通用的编辑器提供的语法高亮不同,Studio 可以根据上下文识别 token 的特定类型,给予不同的高亮显示,比如 count 可以作为关键词也可以作为函数名出现,Studio 可以识别不同的语境。 对于存在或者不存在的 Table,Studio 也能以不同颜色进行标识。
如下图所示:

与 Intellij IDE 对 Java 语言的高亮配置类似,MaxCompute SQL 脚本语法高亮的配色也可由用户自己配置。在 Preference 配置面板中,用户可以为不同类型的 token 制定语法高亮方案。

语法检查与错误提示

MaxCompute Studio 能够根据编译结果进行错误提示。脚本编辑功能与 MaxCompute 编译器高度整合,能够在脚本编辑过程中实时进行语法检查,并通过特殊高亮及 tips 文本给出错误提醒。便于开发人员快速排错,提前对位问题。

潜在风险提示

由于 MaxCompute 语法及数据类型转换的灵活性。用户在很多情况下,书写的脚本没有语法错误,但是没有得到想要的结果。针对这个痛点,Studio 会结合脚本的编译结果,给出相应的 WARNING 提示,将用户脚本中潜在的风险在开发和调试阶段给出提醒,防患于未然。 Studio 对相关风险部分给予语法高亮展示并给出详细说明,如:

本地编译与错误定位

Studio 提供脚本本地编译功能,在提交到服务器上运行之前在本地进行必要的语法检查、类型检查等,编译过程信息通过 Compiler View 窗格展现给用户。本地编译可以提前发现脚本中的错误,大大减少错误脚本在服务器端无效运行的比率。MaxCompute 开发者之前经常遇到的一个痛点就是一个多语句的脚本,可能前面的语句执行正常,但是在后面的一条语句有语法或者类型错误,导致整个作业失败,而且浪费了前面成功语句的执行时间和资源。 使用 Studio 提供的本地编译功能,就可以通过提交前的本地编译一次性地发现脚本中所有的语法与类型错误,快速定位和解决。 双击编译结果窗口中的 Log Item,可以快速定位到脚本的对应行列位置,直接进行修复。

脚本提交与状态反馈

Studio 中编辑好的脚本能够直接在 IDE 中提交执行。点击编辑器上方工具条中的绿色执行按钮即可提交到脚本关联的 MaxCompute 项目空间排队运行。提交执行的脚本可以实时查看运行状态,查看执行计划图,可以在 Running Info 窗格中查看任务动态输出信息。执行结束且有输出数据的脚本,可以在 Running Result 窗格中查看输出结果。 下图展示了在 Studio 中提交的脚本的运行状态:

执行输出 & Logview URL

Select 语句输出结果

Table schema 提示

脚本编辑器中,通过鼠标悬停的方式可以查看一个 Table 的 Schema 信息,包含 Table 所有列及列数据类型信息,方便用户开发。

变量引用检查

Studio 会根据上下文对变量引用做类型检查,对于错误的引用给出提醒

UDF 签名检查

脚本编辑过程中,Studio 会对 UDF 的函数签名进行实时检查,对参数类型或数量不匹配的场景给出错误提示。

MaxCompute 作业浏览器 (Job Explorer)

作为开发者,经常需要关心自己提交到 MaxCompute 服务器上的作业执行状况。 MaxCompute Studio 提供了 Job Explorer 来管理、展示用户所在项目空间中的作业详细信息。

查看 Project 下所有作业实例

通过 Job Explorer 窗口,用户可以一目了然地获得自己提交的所有历史作业的列表。列表可以通过项目名称,以及历史跨度等条件进行过滤。 提供卡片和列表两种方式进行展示。

使用作业查询过滤器

在 Project 下拉框中选择对应的 Project,点击 Refresh 按钮,列出对应项目上所有用户自己提交的作业列表,所有在 Project Explorer 中建立了连接的 Project 均可以查找到。查询的时间跨度可以调节,最长可以查询距当前时间 7 天的历史作业记录。

通过 Logview URL 以只读方式打开作业详情

使用 Logview 来查看一个作业的详细信息是 MaxCompute 用户熟悉的方式。使用 Logview 还有一个便利之处是可以查看其他用户在其他项目空间中提交的任务状态。 在 Studio 中我们也提供了通过输入一个有效的 Logview URL 打开任意一个作业详情的功能。

  • 可以打开 Studio 的 toolbar 上选择:

  • 也可以直接在菜单上找到 MaxCompute 菜单打开:

  • 然后通过粘贴 Logview URL 的方式找到作业并打开作业详情视图

展示作业详情

Job Explorer 双击作业卡片或者作业列表中的一个作业,或者输入有效的 Logview URL,可以打开该作业的详情页面。如图所示:

在作业详情页面中包含五个标签页: 可视化、概要(JSON)、概要(文本)、SQL和执行结果。

  • 可视化标签页:负责展示作业的执行关系图,Tasks 列表,及各个 Tasks 对应的具体的计算任务列表和详细信息。作业执行关系图可以展示作业 Task 之间的执行逻辑,双击每个 Task 节点可以进一步展开查看任务的执行算子。在页面右侧的任务列表中可以查看每个计算单元具体的计算任务的执行情况,点击右键还能够把列表导出或者查看进一步的标准输出(stdout)和标准错误输出(stderr)的信息。
  • 概要(JSON)标签页:作业概要的 Json 信息,包含完成的作业输入输出参数等
  • 概要(文本)标签页:作业概要的文本信息。
  • SQL 标签页:显示提交作业的 SQL 源代码
  • 执行结果标签页:以表格形式显示作业的结果输出

免费下载、安装 MaxCompute Studio

现在就可以免费下载、安装 MaxCompute Studio。

  1. 需要 JDK 1.8
  2. 需要 IntelliJ IDEA 14.1.4 以上版本 (可以在 https://www.jetbrains.com/idea/ 下载免费社区版)
  3. 在 IntelliJ IDEA 中打开 File | Settings | Plugins, 点击 Browse repositories... 按钮
  4. 搜索 “MaxCompute Studio", 安装 MaxCompute Studio 插件
  5. 完成安装,重新启动 IntelliJ IDEA

后续功能展望

MaxCompute Studio 致力于为用户提供更好的海量数据应用开发体验,目前后续版本已经在开发中。我们将在后续版本中提升 Project Explorer 的项目管理功能;提供更加丰富的 SQL 智能编辑支持;提供与 Web 版本 Data IDE 的集成,管理用户的工作流;提供 UDF 的开发和在线调试功能等。 相信我们能给广大开发者的数据开发之路助上一臂之力。

MaxCompute 2.0

欢迎加入 MaxCompute 钉钉群讨论

时间: 2024-10-30 06:13:36

使用 MaxCompute Studio 开发大数据应用的相关文章

【直播回顾】通过MaxCompute Studio实践大数据时代的DevOps

内容简介:阿里云大数据平台 MaxCompute 系统为开发者提供全托管的.PB 级的数据仓库解决方案,MaxCompute Studio 是 MaxCompute 新推出的数据集成开发环境(IDE),为开发者提供了 数据开发调试 - 命令行工具集成 - 自助作业分析诊断 的全面解决方案. 我将通过 MaxCompute Studio 的智能代码编辑能力.数据管理及浏览能力.作业可视化和自助诊断能力等展现 MaxCompute 平台的数据开发和部署的强大和敏捷性. 观众受益:带领大家实现数据仓库

阿里云全新一代企业级新品解读—通过MaxCompute Studio实践大数据时代的DevOps

今天是2017杭州·云栖大会的第一天,这场科技盛宴吸引了来自全球的参展商.开发者.相关从业人员以及科技爱好者.在今天上午的主论坛,阿里云总裁胡晓明在发言中重点提及的新一代计算平台MaxCompute会在本次大会中多次亮相. 作为大数据计算服务的基石,MaxCompute不仅会在本次大会上发布作为全球BigBench测评第一计算引擎的测评结果,更在14日上午举办阿里云大数据计算服务(MaxCompute)专场.同时也会在云栖大会落幕后,贴身为广大开发者奉上<通过MaxCompute Studio实

AdTime:开发大数据新能源助力信息消费

文章讲的是AdTime:开发大数据新能源助力信息消费,无可厚非,大数据在社会生活中的运用将会越来越多,未来大到国家安全小到个人决策,都将离不开大数据的支持.从很多角度上来看,大数据具备新能源的很多特征,一是可再生,可重复利用,二是清洁高效.数据资源将会逐渐成为除太阳能.风能.生物质能等之外的另一种新能源,被各行各业广泛使用.能源与社会经济发展息息相关,特别对信息消费领域的促进十分巨大. 如其他新能源一样,大数据本身不具备太多价值,但对这些数据进行开发与利用后,会在很多层面中发挥巨大作用.同时,所

MaxCompute( 原名ODPS)大数据容灾方案与实现(及项目落地实例)专有云

一,背景与概述     复杂系统的灾难恢复是个难题,具有海量数据及复杂业务场景的大数据容灾是个大难题.     MaxCompute是集团内重要数据平台,是自主研发的大数据解决方案,其规模和稳定性在业界都是领先的.在周边系统众多,业务场景复杂,海量数据存储和计算调度都是一个难题的情况下,需要保证大数据系统在灾难发生时能够尽快切换到备用系统服务,最小限度影响客户使用.     容灾系统及方案的建设有很多种方式,如同城双活,异地多活,冷备容灾等.MaxCompute大数据的容灾方案是在多年集团内部断

MaxCompute助力北斗大数据,千寻位置3秒实现厘米级定位

无人机.无人车--随着智能无人技术的兴起,背后的核心技术越加受到业界的关注.近日,全球最大地基增强系统运营商千寻位置成功研发出全球首个支持A-北斗的辅助定位平台FindNow, 大大缩短定位时间;结合使用阿里云大计算力量的千寻云踪-位置数据接入服务,为全国智能产业提供厘米级乃至毫米级高精度位置定位,快速+精准定位,为汽车导航.精准农业.防灾减灾等行业正迎来新的机遇. 3秒"中国速度":如何突破? 千寻位置已经开发出世界上第一个全方位支持A-GPS / A-GLONASS / A-北斗三

兴业银行与百度“开发”大数据

兴业银行(601166)晚间公告,2014年6月12日,兴业银行与百度时代网络技术有限公司签署战略合作协议.根据协议,兴业银行作为百度在银行业的唯一全面战略合作伙伴,双方将充分发掘和利用各自在金融领域.互联网领域的优势,在金融和互联网领域开展全面战略合作,促进双方产品与服务的应用水平提升.业务合作范围包括但不限于互联网金融创新合作.大数据合作和产品营销合作等. 兴业银行副行长薛鹤峰表示,围绕金融网络化趋势,兴业银行从去年就开始了互联网金融布局.另外,百度副总裁曾良表示,百度将充分利用其在数据研究

南明区开发大数据应用程序

南明区服务业企业培育信息匹配程序日前上线运行,可有效解决寻找上限入统企业(规上企业)难的问题,是大数据政用领域的有益探索 该程序由南明区发改局(区服务业领导小组)牵头研发,利用大数据手段,整合企业分散在市场监管局等单位的注册情况.基本情况.收入情况等相关信息,精准锁定符合上限入统条件的企业,从而提高培育企业上限入统工作效率. 程序在试运行阶段,已从近2700家企业中精准锁定符合条件的2家企业,作为南明区一季度的培育对象. 本文转自d1net(转载)

无锡电信开发大数据三维评估系统

中国电信江苏无锡分公司大数据管理研发团队近日再出新成果,无线大数据三维评估系统"横空出世",这一系统能在空中精确完成无线大数据三维动态分析,支撑网络建设的深度覆盖和持续优化,更为解决部分室内弱覆盖难题起到了拾遗补缺的支撑作用. 无锡电信研发团队开展的创新课题研究,采用业界领先的无线大数据三维定位方案,紧紧围绕建筑物和道路区域,开启精准三维全景定位网络性能评估,将传统二维转为三维精细化定位分析,保障核心区重点场景网络覆盖和精细优化,精确指导网络质量评估.网络优化和规划工作.研发期间,无锡

阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171122)

  概况介绍 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速.完全托管的TB/PB级数据仓库解决方案.MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全.本文收录了大量的MaxCompute产品介绍.技术介绍,帮助您快速了解MaxCompute/ODPS. MaxCompute 2.0:阿里巴巴的大数