SuperAPI AI 工具集

huawei-cloud-mrs-spark-sql-check

数据与分析

查看项目

更新于 10-15 22:15

技能介绍

用途:对华为云 MRS Spark 的 SQL 语句做语法与开发规范检查,可在上集群执行前离线校验,识别 Spark 专有语法与潜在性能反模式。

主要能力:采用分词器→解析器→规则引擎→报告生成的三段式流水线。语法检查含 20 条规则(SYN-ERR、SYN001–SYN020),覆盖关键字有效性、语句结构、子句顺序、PARTITIONED BY、CLUSTERED BY、STORED AS/USING、ROW FORMAT、INSERT OVERWRITE、LATERAL VIEW、子查询、CREATE/ALTER TABLE、MERGE、USING、OPTIONS、CACHE TABLE、REFRESH、ADD/LIST JAR 等。规范检查含 29 条规则(SPEC001–SPEC029),涉及 SELECT *、无 WHERE 的 DELETE/UPDATE、笛卡尔积、隐式类型转换、LIKE 前导通配符、分区字段函数、INSERT 缺列、表/列注释、命名、金额用 FLOAT/DOUBLE、列数与分区数上限、CASE WHEN 缺 ELSE、NULL 处理、JOIN 类型不匹配、子查询嵌套深度、分区裁剪、CASCADE、USING 优先于 STORED AS、CACHE 与 BROADCAST 建议、DROP IF EXISTS、ADD JAR 等。支持 DML、DDL、DCL 及 EXPLAIN、SET、SHOW、DESCRIBE、ANALYZE TABLE 等工具语句,并识别 HINT、反引号标识符、注释跳过及 Hive 兼容语法。

使用方式:需 Python >= 3.8,仅标准库。分词:python ~/.cac/skills/huawei-cloud-mrs-spark-sql-check/scripts/spark_sql_tokenizer.py "<sql_text>";解析:python ~/.cac/skills/huawei-cloud-mrs-spark-sql-check/scripts/spark_sql_parser.py "<sql_text>";检查:python ~/.cac/skills/huawei-cloud-mrs-spark-sql-check/scripts/spark_sql_checker.py "<sql_text>" all。参数 sql_text 必填,check_mode 可选 syntax/spec/all,默认 syntax+spec。输出 Markdown 报告,含汇总表、语法检查、规范检查、大 SQL 拦截(INTERCEPT001–INTERCEPT007)与原始 SQL,每条违规含规则 ID、名称、级别、行列位置、描述、代码片段与修复建议。

适用场景:MRS Spark 集群执行前校验、SQL 开发规范评审、Spark 专有语法检查、性能反模式排查。

限制:仅静态分析,不连接集群、不发送数据、无需凭证;检查基于 Spark SQL 语法定义,具体版本差异与规则阈值等细节暂未提供。