MaxCompute Studio使用心得系列2——编译SQL脚本

简介: Console客户端、大数据开发套件的SQL编辑器目前都没有脚本编译功能,每次需要执行SQL脚本,只能提交执行后若有语法错误,执行结果失败返回失败信息才发现,影响开发效率又浪费资源。今天我就来分享在MaxCompute SQL提交运行前就可以进行脚本编译的方法。

开发人员写好代码,对代码进行语法编译是很常见的操作,但是目前常用的MaxCompute sql开发工具(大数据开发套件和console客户端),都没有该功能,必须把sql脚本提交运行后若有语法问题才会通过返回错误日志中获取相关信息。

MaxCompute每次提交job都要少则几秒多则数分钟不等的排队过程,等返回失败信息,也需要等待一定的时间,不仅仅影响开发效率,还浪费计算资源。

本次分享 通过MaxCompute Studio 进行SQL脚本开发过程中“编译”功能带来的便利。

前提条件:Project Explorer窗口中必须添加好项目,即添加项目元数据。

语法检查与错误提示

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

image

如上图所示,select * from abc;这个简单的语句,abc是表名,但在该脚本所属的MaxCompute project中,表是不存在的,因此该表名字体变成红色高亮,鼠标移至上方会显示 table hntest.abc cannot be resolved。

不仅仅能检查到表是否存在,列是否存在也可以检查到,如下图所示:

image

潜在风险提示

由于 MaxCompute 语法及数据类型转换的灵活性。很多情况下,书写的脚本没有语法错误,但也没有得到想要的结果。针对这个痛点,Studio 结合脚本的编译结果,给出相应的 WARNING 提示,将脚本中潜在的风险在开发和调试阶段给出提醒,防患于未然。

Studio 对相关风险部分给予语法高亮或添加背景色展示并给出详细说明,如:

image

本地编译与错误定位

Studio 提供本地编译脚本功能,在提交到服务器上运行之前在本地进行必要的语法检查、类型检查等,编译过程信息通过 Messages MaxCompute View 展现:

image

双击编译结果窗口中的 Log Item,可以快速定位到脚本的对应行列位置,直接进行修复。

假如我一直忽视了编译功能给我的各种语法错误检查结果,也没有操作本地编译,直接在MaxCompute Studio上运行有语法错误的脚本,MaxCompute Studio依然尽职尽责的先把我提交的脚本进行本地编译,然后给我提示:

image

好了,先分享到这,MaxCompute Studio编译功能还会给我们带来多少惊喜,需要多实践才能多发现!

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
320 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
SQL 关系型数据库 MySQL
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
168 0
|
存储 SQL Go
全网最长的sql server巡检脚本分享(1000行)
全网最长的sql server巡检脚本分享(1000行)
528 1
|
SQL 存储 分布式计算
MaxCompute SQL 与传统 SQL 的异同
【8月更文第31天】随着大数据处理的需求日益增长,传统的 SQL 数据库已经无法满足海量数据的分析需求。MaxCompute(又名 ODPS,Open Data Processing Service)是阿里云提供的大数据处理平台,它提供了 SQL 接口,使得用户可以通过熟悉的 SQL 语法来处理大规模的数据集。然而,由于 MaxCompute 设计初衷是为了处理 PB 级别的数据,因此其 SQL 与传统的 SQL 存在一些差异。本文将探讨 MaxCompute SQL 与标准 SQL 的异同,并介绍 MaxCompute SQL 的一些特殊功能。
600 0
|
SQL 存储 Go
SQL Server一键巡检脚本分享
SQL Server一键巡检脚本分享
643 0
|
SQL 监控 安全
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?

相关产品

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