使用MaxCompute编译器检查脚本

MaxCompute编译器基于MaxCompute 2.0新一代的SQL引擎,显著提升了SQL语言编译过程的易用性与语言的表达能力。本文将为您介绍如何利用MaxCompute编译器的报错和告警进行排障。

背景信息

  • 为了充分展示MaxCompute编译器的易用性,推荐您使用MaxCompute Studio。如何安装请参见安装 MaxCompute Studio

  • 建议您在提交任何脚本之前,使用MaxCompute编译器对脚本进行静态编译检查。推荐您在MaxCompute SQL配置选项选中Enable syntax coloring,启动语法高亮功能。如何配置请参见MaxCompute SQL配置选项

报错示例

  • 编译器显示

    鼠标悬停如下图所示红色报错标记处,编译器显示expect 1 columns, actually have 2编译报错

  • 运行结果运行结果显示

  • 报错说明

    由于src表定义参数为两列,而利用insert语句插入数据时,values中有一组数据缺少一列参数,故编译器报错。

告警示例

  • 编译器显示

    鼠标悬停如下图所示告警标记处,编译器显示implicit conversion from STRING to DOUBLE, potential data loss, use CAST function to suppress告警标记

  • 告警说明

    从STRING到DOUBLE的隐式转换,有可能造成数据丢失,需要使用CAST函数处理。数据转换详情请参见数据类型转换

    说明
    • 在运行脚本之前建议修改所有的告警,避免浪费时间和资源。

    • 提交有错误的脚本会扣您的计算健康分,会导致以后提交任务的优先级下调,未来没有修改的告警也会被纳入到健康分体系。所以,充分利用MaxCompute编译器的错误和告警提示,可以避免降低优先级。