作者:孙健

孙健,爱可生研发工程师,负责 SQLE 相干开发;

本文起源:原创投稿

*爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。


一、 SQLE 介绍

SQLE 是一款由爱可生开源社区发动,面向数据库开发与管理人员,实现了 SQL 的「开发」-「测试」-「上线」等全流程笼罩,资源与权限精细化治理,兼顾简洁与高效,易保护、易扩大的的开源我的项目,旨在为用户提供一套的安全可靠、自主可控的 SQL 品质管控计划。

二、 性能介绍

SQLE 的开发阶段 SQL审核次要是通过 SQLE 的性能审核工作来实现的,该功能定位是应答全场景 SQL 品质管控解决方案,可能在利用开发、测试、上线、生产等不同阶段对 SQL 进行品质管控。将 SQL 采集与SQL审核联合对数据库进行长期审核,目前反对Mybatis 扫描,慢日志,库表元数据,TopSQL ,应用程序 SQL 抓取(java利用)的场景审核。利用开发阶段能够通过审核工作的 Mybatis 扫描类型的工作对利用代码做实时审核,Mybatis 扫描的审核工作须要通过 SQLE 提供的 Scanner 工具进行SQL采集并推送到 SQLE 进行SQL审核, 以下是 SQLE 通过 Scanner 采集 SQL 的流程图:

目前开发阶段根本都是应用 CI/CD 平台进行继续集成,例如 Jenkins ,GoCD ,git平台的 CI/CD 等,该阶段次要用来进行代码的查看,单测,打包。益处是标准化开发流程,缩小简单的工作量。因而在开发阶段也能够将SQL审核作为一个查看模块集成进CI流程。将 SQL审核事宜前置到开发阶段可能缩小前期SQL审核的压力。目前应用 SQLE 的审核工作可能做到:

  1. SQLE 提供 Scanner 模式能够集成简直所有CI/CD,配置简略,能够轻易集成进现有的开发流程;
  2. SQL审核后果即时反馈,对于未通过的SQL审核,开发能够即时优化;
  3. 除了CI流程之外,也能够在 SQLE 界面进行 SQL分类统计和审核报告查看。

三、 成果演示

1. 创立审核工作

2. 在 jenkins 对应的工作上加一个构建流程

SQLE 的 Scanner 与CI/CD的集成形式是通过增加bash类型的工作,个别CI/CD都反对该形式。SQLE Scanner 实质上是一个二进制命令行工具,该工具集成在 SQLE 内,能够在 SQLE 平台装置目录的 bin 下找到,具体的应用形式和命令行参数解释参考:https://actiontech.github.io/... 。

3. 当jenkins工作触发时会进行SQL审核

Jenkins 集成后进行SQL审核的成果如下两张图所示:


审核后果会立刻通过 Jenkins 的工作返回,当 SQL 不合规触发规定倡议,能够看到上图所示的构建失败的后果,此时CI流程会告诉开发,开发须要优化完不合规 SQL 后再次提交代码触发CI构建,如果SQL优化胜利则SQL审核会构建胜利。

4. SQLE 页面查看后果

开发负责人能够通过SQLE平台查看审核后果和SQL统计,提前理解目前我的项目中SQL的开发品质和碰到的问题。SQL统计信息和审核后果如下两张图所示:


四、总结

以上最简略的SQL审核与CI/CD流程集成的试用,大家能够下载安装 SQLE 并联合本人公司CI/CD 试一下,SQLE 的装置参考主页:https://github.com/actiontech... ;

更多应用场景能够参考:https://actiontech.github.io/... 。