使用 MaxCompute Studio 开发大数据应用

简介: MaxCompute(原ODPS)是阿里云自主研发的分布式大数据处理平台。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)来完成这些操作。

yq1

在 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 客户端窗口,进行各种熟悉的命令行操作,如下图所示。

yq2

增强的 SQL 代码编辑器

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

脚本管理功能

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

yq3

代码补全功能

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

关键字提示及补全

studioKeyword

基于元数据的 Table name 补全

studioTableName

基于元数据的 Table column 补全

studioColumn

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

studioFunction

语法高亮功能

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

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

语法检查与错误提示

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

潜在风险提示

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

本地编译与错误定位

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

脚本提交与状态反馈

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

执行输出 & Logview URL
studioRunningInfo

Select 语句输出结果
studioRunningResult

Table schema 提示

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

变量引用检查

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

UDF 签名检查

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

MaxCompute 作业浏览器 (Job Explorer)

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

查看 Project 下所有作业实例

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

yq5

使用作业查询过滤器

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

yq6

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

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

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

studioLogviewIcon

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

yq7

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

studioLogviewDialog

展示作业详情

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

studioJobDetails

在作业详情页面中包含五个标签页: 可视化、概要(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 Studio 是随 MaxCompute 2.0 推出的集成开发工具。 想了解更多关于 [MaxCompute](
https://data.aliyun.com/product/odps?from=yq&id=61561) 2.0 激动人心的特性请关注即将召开的云栖大会和云栖社区的相关文章。 想要使用 MaxCompute 2.0 的用户可以扫下面的二维码进入用户钉钉群。

欢迎加入 MaxCompute 钉钉群讨论
MaxCompute_

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
6天前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之大数据计算MaxCompute如何实现通过离线同步脚本模式
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1天前
|
SQL 分布式计算 数据挖掘
阿里云MaxCompute携手华大基因打造精准医疗应用云平台,十万基因组计算成本降低至1000美金以内
华大基因是中国最领先的基因科技公司,华大基因为消除人类病痛、经济危机、国家灾难、濒危动物保护、缩小贫富差距等方面提供分子遗传层面的技术支持。让我们结合maxcompute的技术特点,看看如何助力华大基因。
221 6
|
6天前
|
存储 NoSQL 大数据
【MongoDB 专栏】MongoDB 在大数据场景下的应用
【5月更文挑战第11天】MongoDB,适用于大数据时代,以其灵活数据模型、高可扩展性和快速性能在大数据场景中脱颖而出。它处理海量、多类型数据,支持高并发,并在数据分析、日志处理、内容管理和物联网应用中广泛应用。电商和互联网公司的案例展示了其在扩展性和业务适应性上的优势,但同时也面临数据一致性、资源管理、数据安全和性能优化的挑战。
【MongoDB 专栏】MongoDB 在大数据场景下的应用
|
6天前
|
分布式计算 监控 数据挖掘
MaxCompute的应用
【5月更文挑战第7天】MaxCompute的应用
30 8
|
6天前
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之DataWorks中udf开发完后,本地和在MaxCompute的工作区可以执行函数查询,但是在datawork里报错FAILED: ODPS-0130071:[2,5],是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
29 0
|
6天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在DataWorks中,使用JSON解析函数将MySQL表中的字段解析成多个字段将这些字段写入到ODPS(MaxCompute)中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
30 3
|
6天前
|
分布式计算 大数据 调度
MaxCompute产品使用合集之大数据计算MaxCompute底层加速查询的原理是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
分布式计算 大数据 BI
MaxCompute产品使用合集之MaxCompute项目的数据是否可以被接入到阿里云的Quick BI中
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之怎样可以将大数据计算MaxCompute表的数据可以导出为本地文件
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
分布式计算 DataWorks 数据库
DataWorks操作报错合集之DataWorks使用数据集成整库全增量同步oceanbase数据到odps的时候,遇到报错,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
25 0

热门文章

最新文章

相关产品

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