今日头条
作者:孙健、张强
孙健,爱可生研发工程师,负责 SQLE 相关开发;张强:爱可生研发中心成员,后端研发工程师,目前负责 DMP 产品 Redis 相关业务开发。
一. SQLE 介绍
SQLE 是一款由爱可生开源社区发起,面向数据库开发与管理人员,实现了 SQL 的「开发」-「测试」-「上线」等全流程覆盖,资源与权限精细化管理,兼顾简洁与高效,易维护、易扩展的的开源项目,旨在为用户提供一套的安全可靠、自主可控的 SQL 质量管控方案。
在二月份发布的 1.2202.0 版本中:
改造了用户系统,新增用户组和操作权限;
增加对工单审核结果进行评分的功能;
增加审核任务,支持 MySQL 的库表结构、Oracle 的 TopSQL以及 Java 应用的 SQL 抓取和审核;
增加了 Db2 审核插件,支持 Db2 审核工单并上线;
新增了 37 条 MySQL 审核规则,如检查 DDL 是否创建了冗余的索引;
其他体验优化和 Bug 修复。
二. Java 应用审核介绍
(友情提示:此为企业版功能)考虑到很多用户在实际生产中已经部署了大量的、以 Java 为基础的应用和服务,并且某些已经涉及到了极其重要、不可中断的核心业务。从 1.2202.0 版本开始,SQLE 开始支持 Java 应用的 SQL 审核。并且在完成核心功能的基础上,支持 Java 应用零成本接入 。
SQLE 的 Java 审核特性如下:
支持无侵入式的业务集成,用户可以直接以环境变量的方式运行来启动 Java 应用,直接接入 SQLE 而无需修改 Java 业务代码,减少了用户接入成本;
支持应用 SQL 的自动采集和统计,用户可以在 SQLE 上通过语句池页面统览应用内的 SQL 的分类与统计,迅速掌握应用内 SQL 的情况;
支持手动或自动审核 SQL ,用户可以在审核报告中知晓应用的 SQL 是否符合预设的审核规则,无论是开发人员还是 DBA 都能实时了解正在运行的业务 SQL 执行状况。
三. 效果展示
1. 事先部署好环境、需要接入的 Java 应用以及对应的数据库,并添加为数据源。为了演示,此处 Java 项目为 https://gitee.com/surveyking/surveyking ;
2. 创建 Java 应用的审核任务;
3. 启动应用程序;
SQLE_COLLECT_ENABLE=true \SQLE_HOST=XX.XX.XX.XX:10000 \
SQLE_TASK_NAME=surveryking_test \
SQLE_TASK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJqd19hcHAiLCJleHAiOjE2NzcyMjYxNzcsIm5hbWUiOiJhZG1pbiJ9.3d0pA1hiVnFEWJokSFBwCT8d1pKOYV6SViENj4GFqgI \
java -jar surveyking-v0.3.0-beta.4.jar \
--server.port=1991 \
--spring.datasource.url=jdbc:mysql://XX.XX.XX.XX:3306/surveyking \
--spring.datasource.username=root \
--spring.datasource.password=xxxxxx \
& >>/opt/surveyking/std.log
4. 查看 SQLE 审核任务详情界面,可以看到目前应用已经执行的 SQL ;
5. 查看审核报告,用户可以通过审核任务的审核报告了解到应用的 SQL 是否符合预设审核规则以便及时作出调整。
6. 在示例 Java 应用主页创建一个用户,然后便可以在审核任务对应的 SQLE 语句池内观察到所对应的 INSERT 语句。
7. 同时,用户可以从语句池内页面迅速地感知到应用内执行的 SQL 的语句分类和统计情况。
综合以上的示例步骤,Java 应用零成本地接入了 SQLE。开发人员和 DBA 可以通过「审核报告」、「审核任务的 SQL 语句池」等功能完全掌握应用内的 SQL 审核结果、执行情况以及统计信息,完成了从「开发」直至「上线」这一过程中的 SQL 质量管控。
如果想进一步了解 SQLE 的更多功能与特性,请访问以下地址:
类型 | 地址 |
---|---|
版本库 | https://github.com/actiontech/sqle |
文档 | https://actiontech.github.io/sqle-docs-cn/ |
发布信息 | https://github.com/actiontech/sqle/releases |
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !