使用 MaxCompute Studio 开发大数据应用

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 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 
目录
相关文章
|
1月前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
95 1
|
1月前
|
存储 分布式计算 druid
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
58 1
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
ly~
|
1月前
|
供应链 搜索推荐 安全
大数据模型的应用
大数据模型在多个领域均有广泛应用。在金融领域,它可用于风险评估与预测、智能营销及反欺诈检测,助力金融机构做出更加精准的决策;在医疗领域,大数据模型能够协助疾病诊断与预测、优化医疗资源管理和加速药物研发;在交通领域,该技术有助于交通流量预测、智能交通管理和物流管理,从而提升整体交通效率;电商领域则借助大数据模型实现商品推荐、库存管理和价格优化,增强用户体验与企业效益;此外,在能源和制造业中,大数据模型的应用范围涵盖从需求预测到设备故障预测等多个方面,全面推动了行业的智能化转型与升级。
ly~
101 2
ly~
|
1月前
|
供应链 搜索推荐 大数据
大数据在零售业中的应用
在零售业中,大数据通过分析顾客的购买记录、在线浏览习惯等数据,帮助零售商理解顾客行为并提供个性化服务。例如,分析网站点击路径以了解顾客兴趣,并利用历史购买数据开发智能推荐系统,提升销售和顾客满意度。此外,大数据还能优化库存管理,通过分析销售数据和市场需求,更准确地预测需求,减少库存积压和缺货现象,提高资金流动性。
ly~
297 2
ly~
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
大数据在智慧金融中的应用
在智能算法交易中,深度学习揭示价格波动的复杂动力学,强化学习依据市场反馈优化策略,助力投资者获取阿尔法收益。智能监管合规利用自然语言处理精准解读法规,实时追踪监管变化,确保机构紧跟政策。大数据分析监控交易,预警潜在违规行为,变被动防御为主动预防。数智化营销通过多维度数据分析,构建细致客户画像,提供个性化产品推荐。智慧客服借助 AI 技术提升服务质量,增强客户满意度。
ly~
112 2
ly~
|
1月前
|
供应链 监控 搜索推荐
大数据的应用场景
大数据在众多行业中的应用场景广泛,涵盖金融、零售、医疗保健、交通物流、制造、能源、政府公共服务及教育等领域。在金融行业,大数据用于风险评估、精准营销、反欺诈以及决策支持;零售业则应用于商品推荐、供应链管理和门店运营优化等;医疗保健领域利用大数据进行疾病预测、辅助诊断和医疗质量评估;交通物流业通过大数据优化物流配送、交通管理和运输安全;制造业则在生产过程优化、设备维护和供应链协同方面受益;能源行业运用大数据提升智能电网管理和能源勘探效率;政府和公共服务部门借助大数据改善城市管理、政务服务及公共安全;教育行业通过大数据实现个性化学习和资源优化配置;体育娱乐业则利用大数据提升赛事分析和娱乐制作水平。
ly~
391 2
|
2月前
|
存储 数据可视化 大数据
大数据管理与应用
大数据管理与应用是一门融合数学、统计学和计算机科学的新兴专业,涵盖数据采集、存储、处理、分析及应用,旨在帮助企业高效决策和提升竞争力。核心课程包括数据库原理、数据挖掘、大数据分析技术等,覆盖数据处理全流程。毕业生可从事数据分析、大数据开发、数据管理等岗位,广泛应用于企业、金融及互联网领域。随着数字化转型加速,该专业需求旺盛,前景广阔。
133 5
|
2月前
|
存储 搜索推荐 大数据
大数据在医疗领域的应用
大数据在医疗领域有广泛应用,包括电子病历的数字化管理和共享,提升医疗服务效率与协同性;通过数据分析支持医疗决策,制定个性化治疗方案;预测疾病风险并提供预防措施;在精准医疗中深度分析患者基因组信息,实现高效治疗;在药物研发中,加速疗效和副作用发现,提高临床试验效率。此外,在金融领域,大数据的“4V”特性助力业务决策前瞻性,被广泛应用于银行、证券和保险的风险评估、市场分析及个性化服务中,提升运营效率和客户满意度。
113 6
|
2月前
|
机器学习/深度学习 人工智能 分布式计算
人工智能与大数据的融合应用##
随着科技的快速发展,人工智能(AI)和大数据技术已经深刻地改变了我们的生活。本文将探讨人工智能与大数据的基本概念、发展历程及其在多个领域的融合应用。同时,还将讨论这些技术所带来的优势与挑战,并展望未来的发展趋势。希望通过这篇文章,读者能够对人工智能与大数据有更深入的理解,并思考其对未来社会的影响。 ##
|
2月前
|
SQL 分布式计算 大数据
代码编码原则和规范大数据开发
此文档详细规定了SQL代码的编写规范,包括代码的清晰度,执行效率,以及注释的必要性。它强调所有SQL关键字需统一使用大写或小写,并禁止使用select *操作。此外,还规定了代码头部的信息模板,字段排列方式,INSERT, SELECT子句的格式,运算符的使用,CASE语句编写规则,查询嵌套规范,表别名定义,以及SQL注释的添加方法。这些规则有助于提升代码的可读性和可维护性。
46 0

相关产品

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