SuperAPI AI 工具集

huawei-cloud-doris-sql-check

数据与分析

查看项目

更新于 10-15 22:14

技能介绍

用途:对 Apache Doris SQL 做静态检查,可在执行前校验语法、按开发最佳实践审查规范,并识别潜在性能反模式。基于 Doris 3.1.4 源码的 Nereids ANTLR4 语法(DorisLexer.g4 / DorisParser.g4),内置自建分词器与递归下降解析器。

主要能力:采用分词→解析→规则引擎→报告生成的三段式流程。检查模式有 syntax(语法)、spec(规范)、all(两者),默认 syntax+spec。语法规则 34 条(SYN-ERR、SYN001–SYN033),覆盖关键字有效性、语句结构、子句顺序及 DISTRIBUTED BY、PARTITION BY、BUCKETS、KEY 模型、PROPERTIES、ENGINE、INSERT OVERWRITE、LOAD、ROUTINE LOAD、EXPORT、BACKUP/RESTORE、MTMV、Hint、全文检索 MATCH 等 Doris 特有语法。规范规则 46 条(SPEC001–SPEC046),涵盖对象设计、数据操作、命名规范与复杂查询限制,如缺少 DISTRIBUTED BY、SELECT *、无 WHERE 的 DELETE/UPDATE、笛卡尔积、COUNT(DISTINCT) 过多、JOIN 超过 20、子查询嵌套过深、SQL 超 2MB 等。

使用方式:需 Python >= 3.8,仅用标准库,无外部依赖。分词:python ~/.cac/skills/huawei-cloud-doris-sql-check/scripts/doris_sql_tokenizer.py "<sql_text>";解析:python ~/.cac/skills/huawei-cloud-doris-sql-check/scripts/doris_sql_parser.py "<sql_text>";检查并生成 Markdown 报告:python ~/.cac/skills/huawei-cloud-doris-sql-check/scripts/doris_sql_checker.py "<sql_text>" all。参数 sql_text 必填,check_mode 可选(syntax/spec/all)。

适用场景:在 Doris 集群(FE/BE)执行前验证 SQL;审查建表规范(分布、键模型、分区);校验 INSERT OVERWRITE、LOAD、EXPORT、MTMV、ROUTINE LOAD、BACKUP/RESTORE 等语句;排查性能反模式。

限制:仅做静态分析,不连接集群;部分规则(如视图嵌套深度、索引数量、非下推 SQL)需集群信息,资料未说明其具体实现方式;SQL 文本本地处理,不外发,无需凭据。具体收费、价格与平台支持情况暂未提供。