使用 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_

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
18天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
1月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
1月前
|
存储 消息中间件 大数据
Go语言在大数据处理中的实际应用与案例分析
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理中的实际应用,通过案例分析展示了Go语言在处理大数据时的优势和实践效果。文章首先介绍了大数据处理的挑战与需求,然后详细分析了Go语言在大数据处理中的适用性和核心技术,最后通过具体案例展示了Go语言在大数据处理中的实际应用。
|
28天前
|
数据采集 分布式计算 大数据
Java语言在大数据处理中的应用
传统的大数据处理往往依赖于庞大的数据中心和高性能的服务器,然而随着大数据时代的到来,Java作为一种强大的编程语言正在被广泛应用于大数据处理领域。本文将探讨Java语言在大数据处理中的优势和应用,以及其在分布式计算、数据处理和系统集成等方面的重要作用。
|
1月前
|
存储 大数据 数据挖掘
云计算与大数据:从基础设施到实际应用
云计算与大数据:从基础设施到实际应用
117 0
|
20天前
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。
|
21天前
|
机器学习/深度学习 分布式计算 数据挖掘
阿里云 MaxCompute MaxFrame 开启免费邀测,统一 Python 开发生态
阿里云 MaxCompute MaxFrame 正式开启邀测,统一 Python 开发生态,打破大数据及 AI 开发使用边界。
198 1
|
25天前
|
机器学习/深度学习 人工智能 数据可视化
基于Python的数据可视化技术在大数据分析中的应用
传统的大数据分析往往注重数据处理和计算,然而数据可视化作为一种重要的技术手段,在大数据分析中扮演着至关重要的角色。本文将介绍如何利用Python语言中丰富的数据可视化工具,结合大数据分析,实现更直观、高效的数据展示与分析。
|
28天前
|
机器学习/深度学习 分布式计算 监控
大模型开发:你如何使用大数据进行模型训练?
在大数据模型训练中,关键步骤包括数据准备(收集、清洗、特征工程、划分),硬件准备(分布式计算、并行训练),模型选择与配置,训练与优化,监控评估,以及模型的持久化与部署。过程中要关注数据隐私、安全及法规遵循,利用技术进步提升效率和性能。
36 2
|
1月前
|
存储 NoSQL 大数据
新型数据库技术在大数据分析中的应用与优势探究
随着大数据时代的到来,传统数据库技术已经无法满足海量数据处理的需求。本文将探讨新型数据库技术在大数据分析中的应用情况及其所带来的优势,为读者解析数据库领域的最新发展趋势。

相关产品

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