摘要:Console客户端、大数据开发套件的SQL编辑器目前都没有脚本编译功能,每次需要执行SQL脚本,只能提交执行后若有语法错误,执行结果失败返回失败信息才发现,影响开发效率又浪费资源。今天我就来分享在MaxCompute SQL提交运行前就可以进行脚本编译的方法。
开发人员写好代码,对代码进行语法编译是很常见的操作,但是目前常用的MaxCompute sql开发工具(大数据开发套件和console客户端),都没有该功能,必须把sql脚本提交运行后若有语法问题才会通过返回错误日志中获取相关信息。
MaxCompute每次提交job都要少则几秒多则数分钟不等的排队过程,等返回失败信息,也需要等待一定的时间,不仅仅影响开发效率,还浪费计算资源。
本次分享 通过MaxCompute Studio 进行SQL脚本开发过程中“编译”功能带来的便利。
前提条件:Project Explorer窗口中必须添加好项目,即添加项目元数据。
语法检查与错误提示
Studio脚本编辑功能与 MaxCompute 编译器高度整合,能够在脚本编辑过程中实时进行语法检查,并通过特殊高亮及 tips 文本给出错误提醒。便于开发人员快速排错,提前对位问题。
如上图所示,select * from abc;这个简单的语句,abc是表名,但在该脚本所属的MaxCompute project中,表是不存在的,因此该表名字体变成红色高亮,鼠标移至上方会显示 table hntest.abc cannot be resolved。
不仅仅能检查到表是否存在,列是否存在也可以检查到,如下图所示:
潜在风险提示
由于 MaxCompute 语法及数据类型转换的灵活性。很多情况下,书写的脚本没有语法错误,但也没有得到想要的结果。针对这个痛点,Studio 结合脚本的编译结果,给出相应的 WARNING 提示,将脚本中潜在的风险在开发和调试阶段给出提醒,防患于未然。
Studio 对相关风险部分给予语法高亮或添加背景色展示并给出详细说明,如:
本地编译与错误定位
Studio 提供本地编译脚本功能,在提交到服务器上运行之前在本地进行必要的语法检查、类型检查等,编译过程信息通过 Messages MaxCompute View 展现:
双击编译结果窗口中的 Log Item,可以快速定位到脚本的对应行列位置,直接进行修复。
假如我一直忽视了编译功能给我的各种语法错误检查结果,也没有操作本地编译,直接在MaxCompute Studio上运行有语法错误的脚本,MaxCompute Studio依然尽职尽责的先把我提交的脚本进行本地编译,然后给我提示:
好了,先分享到这,MaxCompute Studio编译功能还会给我们带来多少惊喜,需要多实践才能多发现!