用途:在 HetuEngine 集群执行前对 SQL 做静态检查,覆盖语法与开发规范,识别 HetuEngine 特有语法及潜在性能反模式。
主要能力:采用分词器→解析器→规则引擎→报告生成的三段式流程。语法检查含 19 条规则(SYN-ERR、SYN001–SYN019),校验关键字、语句结构、子句顺序及 PARTITIONED BY、CLUSTERED BY、STORED AS、TABLESAMPLE、INSERT OVERWRITE、LOAD DATA、CREATE FUNCTION、MATERIALIZED VIEW、FETCH、MATCH_RECOGNIZE、ROW FORMAT、VIRTUAL SCHEMA 等语法。规范检查含 34 条规则(SPEC001–SPEC034),涉及对象设计、数据操作、命名规范与 SQL 开发建议,如禁止 SELECT *、DELETE/UPDATE 缺 WHERE、笛卡尔积、命名约定、分区与分桶建议等。支持 DML、DDL、TCL 及 EXPLAIN、SHOW、CALL 等语句类型,识别 400+ 关键字、反引号标识符、美元引用字符串、Lambda 表达式等。
使用方式:需 Python >= 3.8,仅用标准库。分词:python ~/.cac/skills/huawei-cloud-hetu-sql-check/scripts/hetu_sql_tokenizer.py "<sql_text>";解析:python ~/.cac/skills/huawei-cloud-hetu-sql-check/scripts/hetu_sql_parser.py "<sql_text>";检查:python ~/.cac/skills/huawei-cloud-hetu-sql-check/scripts/hetu_sql_checker.py "<sql_text>" [syntax|spec|all],默认 syntax+spec。Markdown 报告可在 Python 中调用 check_sql_markdown(sql, mode)。报告含概要、语法检查、规范检查、原始 SQL,每条违规给出规则 ID、级别、行列位置、描述与修复建议。
适用场景:执行前语法校验、开发规范评审、HetuEngine 特有语法确认、Hive 兼容语法检查、性能反模式排查。
限制:仅静态分析,不连接集群;标记 requires_cluster 的规则(SPEC030)在静态模式下跳过;不支持 DISTRIBUTE BY、Oracle (+) 外连接、TIMECAPSULE,Optimizer Hints 仅有限支持。其他收费、平台与效果信息暂未提供。