代码扫描

自助分析执行时支持进行代码扫描,包含代码规范类、代码性能类、代码质量类、其他。在自助分析的配置管理中,支持设置代码扫描规则是否启用,并支持设置强规则或弱规则。开启强规则时,在执行Query时会进行提醒,并阻断执行Query过程;弱规则,在执行Query时仅作提醒,不阻断执行Query过程。当前自助分析中可支持代码扫描的数据源类型有:平台默认类型,Doris,StarRocks。

针对强弱规则,自助分析代码扫描支持配置强规则生效对象和弱规则生效对象,生效对象支持选择项目角色和项目成员。当某成员同时在强规则生效对象和弱规则生效对象中,且命中该规则,则触发强规则。

权限控制:仅项目负责人和管理员可以设置代码扫描规则是否启用以及规则的强弱。

规则类型主要包括:代码规则类、代码性能类、代码质量类、其他。

其中,系统内置规则如下:

  • 代码规则类:使用"drop"关键字、使用“truncate”关键字、使用“create”关键字、最上层select字段无别名、建表语句表缺少描述、建表语句字段缺少描述、表跨层依赖
  • 代码性能类:分区表未指定分区、使用“select *”语法、使用“distinct”关键字、表关联on产生笛卡尔积、表关联使用full join、表关联过滤条件使用不当
  • 代码质量类:select字段和插入表字段数量不一致、select字段和插入表字段名称或类型不一致、表关联on字段类型不一致、分区字段和过滤条件类型不匹配
  • 其他:语法不通过

此外,支持添加自定义规则,添加并启用后,对当前项目生效。自定义规则会基于填写的正则规则表达式进行代码扫描。

说明: 代码扫描进行规则检查时首先对语法进行检查,如果语法检查未通过,将不再执行其他规则的检查。如果语法检查通过,将继续执行其他规则的检查。

如下图,为配置了【使用“select *”语法】为强规则,并在自助分析执行包含“select *”语句时的错误提示。