1.2203.0-pre4 SQLE Release Notes SQL审核工具 SQLE 1.2203.0-pre4 于今天发布。 注:本次升级为预览版本,仅可用新功能试用,不保证平滑升级 一、SQLE 项目介绍 爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 sqle 文档 https://actiontech.github.io/sqle-docs-cn/ 发布信息 https://github.com/actiontech/sqle/releases 数据审核插件开发文档 二、更新列表 Release Notes 特性 [#353] 增加邮件配置测试功能; 优化 [#367][#406] 优化页面描述,增加对部分功能的引导; [#379] SQL审核结果按审核等级排序展示
,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 需求分析 产品定位 互联网时代,一个 app 可能承载成百上千万用户的使用;其业务规模之大,更新迭代之快,众多业务线日常上线 SQL 之多;DBA 对上线 SQL 的审核和执行工作变得十分繁忙,如何高效的保障 用户细分 主要使用人员:开发人员和 DBA ;开发人员希望便捷、高效、自主可控的上线业务 SQL ;DBA 希望便捷、高效、安全、高质量的审核 SQL 上线。 功能体验分析 (1)创建SQL工单-SQL语句不支持输入联想,建议增加输入联想,提高录入效率 (2)创建SQL工单-SQL语句对于明显语法错误不能及时提示,建议增加语法错误提示,提前发现明显问题 (3) 创建SQL工单-SQL语句输入框高度过高,点击审核后不方便查看到结果,建议降低高度增加宽度 (4)创建SQL工单-工单不支持自定义上线时间,同时也不支持定时上线 表现层 平台整体以白灰色色调为主,配色稳重简约
,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 支持快速审核 SQL 现在,您可以直接提交需要审核的 SQL,无需创建工单,即刻获得审核结果。这个全新的功能将带来更快速、更高效的审核体验。 来一起简单体验一下: 进入 “项目” 页面后,左边栏增加了 “SQL审核” 功能选项,点击后展开的是 SQL 审核的历史审核记录列表。 SQL 审核功能 点击右上角的 “创建审核”,就可以开始审核啦! 与工单审核不同的是,新功能还额外支持不连接数据源的静态审核,可以在没有运行时环境的情况下,对 SQL 进行全面的语法和语义分析。 SQL 语句审核 编辑好 SQL 之后点击编辑框下方的 “审核” 按钮,即可查看到审核结果。审核结束后,可以回到审核记录列表追溯到每次审核的信息。 审核结果 2.
从SQL质量管理体系来看SQL审核系列包括多篇文章,从SQL质量管理体系的角度来讨论如何设计一个优秀SQL审核引擎,欢迎订阅。 本篇我们来详细地介绍SQL质量管理体系的第三部分,SQL审核引擎。 SQL审核引擎主要由SQL解析器、审核规则库、规则匹配引擎组成. 如果SQL解析都无法很好地完成,SQL审核就无法谈起。 审核规则库 审核规则库是存储所有审核规则的知识库, 是整个引擎的核心。一个优秀的审核规则库应该具备: 完备性 SQL语法的覆盖,引擎需能够覆盖各种数据库的各种SQL语法。 SQL质量的覆盖,引擎需能够覆盖SQL开发规范规定的各种SQL质量问题的审核。
将 SQL 采集与SQL审核结合对数据库进行长期审核,目前支持Mybatis 扫描,慢日志,库表元数据,TopSQL ,应用程序 SQL 抓取(java应用)的场景审核。 应用开发阶段可以通过审核任务的 Mybatis 扫描类型的任务对应用代码做实时审核,Mybatis 扫描的审核任务需要通过 SQLE 提供的 Scanner 工具进行SQL采集并推送到 SQLE 进行SQL 因此在开发阶段也可以将SQL审核作为一个检查模块集成进CI流程。将 SQL审核事宜前置到开发阶段能够减少后期SQL审核的压力。 当jenkins任务触发时会进行SQL审核 Jenkins 集成后进行SQL审核的效果如下两张图所示: [sunjian0331-4.png] [sunjian0331-5.png] 审核结果会立即通过 4. SQLE 页面查看结果 开发负责人可以通过SQLE平台查看审核结果和SQL统计,提前了解目前项目中SQL的开发质量和碰到的问题。
将 SQL 采集与SQL审核结合对数据库进行长期审核,目前支持Mybatis 扫描,慢日志,库表元数据,TopSQL ,应用程序 SQL 抓取(java应用)的场景审核。 因此在开发阶段也可以将SQL审核作为一个检查模块集成进CI流程。将 SQL审核事宜前置到开发阶段能够减少后期SQL审核的压力。 当 jenkins 任务触发时会进行SQL审核 Jenkins 集成后进行SQL审核的效果如下两张图所示: 审核结果会立即通过 Jenkins 的任务返回,当 SQL 不合规触发规则建议,可以看到上图所示的构建失败的结果 4. SQLE 页面查看结果 开发负责人可以通过SQLE平台查看审核结果和SQL统计,提前了解目前项目中SQL的开发质量和碰到的问题。 本文关键字:#SQLE# #SQL审核# #事前审核#
一句话概述 PawSQL 通过 插件化、服务化与标准协议集成,打通开发、版本管理、CI/CD、AI助手与运维工具,构建了一套覆盖 开发—测试—上线—巡检 的闭环式 SQL 优化与审核生态。 可在检测到 SQL 文件变更时自动触发审核,并在 Pull Request 中以注释或报告形式反馈问题与修复建议。 GitOps与PawSQL的完美融合,让SQL审核完全自动化 当AI遇上SQL:PawSQL MCP智能助手 PawSQL 通过 模型上下文协议(MCP) 与 AI 助手联通,支持自然语言对话式优化, 3️⃣ 构建共享规则库 把团队共识的“最佳实践”写入规则库,实现全项目统一审核标准。 4️⃣ 建立监控闭环 将 PawSQL 的优化建议与线上性能指标关联,定期回溯效果,用数据驱动治理。 总结:从工具到生态的进化 PawSQL 不只是一个 SQL 审核或优化工具。它是一套能嵌入开发、测试、运维与AI协作全链路的性能治理体系。
1.2206.0-pre1 SQLE Release Notes SQL审核工具 SQLE 1.2206.0-pre1 于今天发布。以下对新版本的 Release Notes 进行详细解读。 ,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 支持TIDB审核插件【企业版】 SQLE通过插件的形式支持TiDB的审核,我们调研了MySQL与TiDB的部分差异,在TiDB插件内引入了大部分MySQL的审核规则,并去掉TiDB不兼容的场景,使得SQLE 支持TiDB专属审核规则【企业版】 group by语句必须包含select列表中的所有非聚合列 检查 SQL需要遵守 'MySQL的ONLY_FULL_GROUP_BY' 模式;例如:select a 下面是SQLE规则截图: 三、完整的release信息 Release Notes 特性 [#565] 支持 TiDB 类型数据库审核【企业版】 [#573] 新增4条TiDB专属规则【企业版】
如上文所述,PawSQL审核引擎的设计目标是使用尽量少的审核规则,覆盖尽可能全的SQL语法和结构,确保尽量高的审核正确率。 PawSQL,公众号:PawSQLPawSQL审核 | SQL审核引擎的设计目标 基于以上的三个目标,PawSQL设计了自己的SQL审核规则体系。 PawSQL的审核规则体系是以SQL对数据库的操作类型分成三大类,即对象设计、对象操作和数据操作。 对象设计的审核的审核对象虽然是SQL语句,但是其实它是对SQL操作的结果进行审核。 这些数据操作语句的不恰当写法可能会导致SQL在正确性、安全性、可维护性、性能方面的各种问题,PawSQL针对数据操作语句从这四个角度共设计了85个审核规则。
前言 经常可以看到市面上的SQL审核工具号称自己审核规则很多,支持的数据库类型很全。 稍微复杂一点的SQL就报语法错误;或是出现大面积的误报或漏报的情况。审查规则越多越好吗?市场上到底需要什么样的SQL审核引擎?看一下SQL优化领域的领先厂商PawSQL如何设计它的SQL审核引擎。 PawSQL审核引擎的设计目标 简单来说,PawSQL审核引擎的设计目标就是:使用尽量少的审核规则,覆盖尽量全的SQL语法和结构,确保尽量高的审核正确率。 目标1. 1.1 抽象化 想要审核规则尽量少,但是覆盖度却尽量广,就需要对审核规则的模式进行抽象化,这样才能用同一个规则覆盖不同的数据库类型的SQL,不同的SQL写法。 = NULL 大部分审核引擎都只进行条件中的`=NULL`审核,可以对上面的SQL进行警告。
最近完成了SQL审核功能的上线,发现用户体验上面还是存在一些问题,具体有以下几点: 1.关于字段注释的建议比较多,这些建议开发人员可能没有必要每个字段都进行注释; 2.有些SQL的建议太多,看到之后直接懵了 ,不知道从哪儿下手; 3.有些任务比较紧急,SQL审核方面的任务太多,容易拖延实际工期; 针对以上问题,今天主要想的是按照一定的重要程度讲SQL审核结果进行分类,目前分为必须修改的错误SQL、警告 SQL以及待完善SQL,并且通过将不同的错误状态码按照一定映射关系映射到不同的审核等级上进行分类展示,这样可以高效的处理严重的问题,对于不严重的问题,则可以后续处理,让SQL审核模块更加试用。 今天的主要任务是将那些SQL审核的错误代码进行切分,利用代码进行前后端的分类、抽取、整理等工作,这里就不展示结果了,主要的成果将在这些任务完成之后进行集中展示。从而实现最终的功能。 今天就这么多,做的工作比较琐碎,改天整理一版出来作为最近SQL审核的最终成果。
SQL审核工具发布的思考 关于SQL审核发布 今天将前段时间做的SQL审核工具做了一场发布,邀请了一些后台和前端的开发同事,他们平时可能没有机会坐下来仔细的去审核自己写的SQL,今天通过SQL 审核工具的发布,大家一起聊了聊在写SQL的方面的一些经验和积累,总体来讲效果还是不错的。 由于我们的SQL审核工具具有打分的功能,可以根据当前这个SQL的执行情况,按照公司的开发规范给出一定的分数值,这种直观的反馈还是很吸引人的。 在今天的发布会当中,我们设定了有奖竞猜环节,就是说我们给出一句SQL,让开发人员去猜这个SQL可以打多少分,分数最接近的那个同学就可以得到我们的奖品,大家的兴致还是很高的,都在认真的审视这个SQL,然后通过自己的经验去分析结果 第三、在SQL审核工具的发布会上,大家还是找出了工具中存在的一些问题,可能确实存在一些语句,我们审核的不到位,比如说一个字段的注释是“电话号”,但是实际上字段类型给定的是char(256),这种情况除了人工
(4)ELECT 不能有ORDER BY 背景:ORDER BY 对MYSQL性能影响大,不太好优化,可以把排序前置到后端,前端,客户端。 MySQL 审核场景化改造兼容事后审核模式 目前,SQLE的SQL审核在设计之初是为了满足SQL上线的审核,随着产品发展,我们支持了多场景下的事前事后审核。 SQL上线的,在部分智能扫描的场景里(慢日志扫描,库表审核等)都是已经上线后的SQL,不应该进行SQL上线的限制。 (2).目前的SQL 审核对不同场景审核的兼容性不友好。 SQLE的SQL审核在设计之初是为了满足SQL上线的审核,通过上下文关联和基础对象验证满足上线SQL的正确性校验,这些在事后审核的场景下过于严格且审核的SQL是已执行过的(慢日志的SQL),导致部分SQL
2.2307.0-pre2 SQLE Release Notes SQL 审核工具 SQLE 2.2307.0-pre2 于今天发布。以下对新版本的 Release Notes 进行详细解读。 ,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 支持自定义审核规则 当用户根据业务需求需要创建新的审核规则时,可以使用平台的自定义规则功能。目前,用户可以在平台上通过正则表达式自定义 SQL 审核的规范,且新建的审核规则将作为全局资源使用。 调整了审核 SQL 和审核结果的页面布局,提升用户体验。 2. 增加了对 SQL 分析结果的展示,用户可以查看更完整的审核结果。 SQL 分析结果展示 [#1653] 支持自定义审核规则:正则匹配 优化: [#1627] 解决慢日志表扫描任务中,展示 SQL 语句报错的问题 社区版和企业版功能对比 详情页面:https://actiontech.github.io
,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 新增IDE(Jetbrains系列)审核插件 SQLE的该插件满足开发人员在开发阶段进行实时自助式的静态SQL审核,实现开发阶段审核上线等各个SQL开发阶段的SQL开发规范。 配置完成后,在开发过程中选中需要审核的SQL, 支持同时审核多条SQL 点击右键, 选中 [SQLE] - [Audit] , 也可以使用快捷键 [Ctrl] + [Shift] + [H] 插件会以弹窗的形式将审核结果进行展示 ,即当某个存在问题的SQL被修复后SQLE是无法感知到的,依然会对该SQL进行审核。 因此对于智能扫描类的场景提供增量审核的模式,可以忽略到一段时间内不再出现的SQL,仅对某段时间以来的SQL进行审核。
应用的 SQL 抓取和审核; 增加了 Db2 审核插件,支持 Db2 审核工单并上线; 新增了 37 条 MySQL 审核规则,如检查 DDL 是否创建了冗余的索引; 其他体验优化和 Bug 修复。 SQL 的自动采集和统计,用户可以在 SQLE 上通过语句池页面统览应用内的 SQL 的分类与统计,迅速掌握应用内 SQL 的情况; 支持手动或自动审核 SQL ,用户可以在审核报告中知晓应用的 SQL 10000 \ SQLE_TASK_NAME=surveryking_test \ SQLE_TASK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJqd19hcHAiLCJleHAiOjE2NzcyMjYxNzcsIm5hbWUiOiJhZG1pbiJ9.3d0pA1hiVnFEWJokSFBwCT8d1pKOYV6SViENj4GFqgI ,可以看到目前应用已经执行的 SQL ; 查看审核报告,用户可以通过审核任务的审核报告了解到应用的 SQL 是否符合预设审核规则以便及时作出调整。 开发人员和 DBA 可以通过「审核报告」、「审核任务的 SQL 语句池」等功能完全掌握应用内的 SQL 审核结果、执行情况以及统计信息,完成了从「开发」直至「上线」这一过程中的 SQL 质量管控。
1.2207.0-pre1 SQLE Release Notes SQL审核工具 SQLE 1.2207.0-pre1 于今天发布。以下对新版本的 Release Notes 进行详细解读。 ,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 支持OceanBase MySQL模式审核插件【企业版】 SQLE通过插件的形式支持OceanBase MySQL模式的审核,我们调研了MySQL与OceanBase的部分差异,在OceanBase-MySQL 插件内引入了大部分MySQL的审核规则,并去掉OceanBase MySQL模式不兼容的场景,使得SQLE审核能完全兼容OceanBase MySQL模式。 [#666] 修复MySQL的lower_case_table_names配置为2时,部分审核进行库表检查不符合预期的问题; [#667] 修复当MySQL审核语句包含系统表时,SQLE审核会提示表不存在的问题
1.2112.0 SQLE Release Notes SQL审核工具 SQLE 1.2112.0 于今天发布。 一、SQLE 项目介绍 爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 sqle 文档 https://actiontech.github.io/sqle-docs-cn/ 发布信息 https://github.com/actiontech/sqle/releases 数据审核插件开发文档 ,提高单个规则的定制灵活性度 [#121] 增加规则配置项,提高规则的适用范围 [#129] SQL输入支持输入联想,补全关键字,提高录入效率 [#171] 数据源支持域名,支持录入并审核云数据库 优化 "改表时,表空间超过指定大小(MB)审核时输出osc改写建议" 触发时导致程序崩溃的问题
4. 用户也可在扫描任务详情中获得扫描结果并查看审核建议。 2. 创建一则工单,其中包含对 MySQL 实例及 Oracle 实例的 SQL 操作。审核通过后,查看待操作人分别为该实例上具有上线权限的成员。 4. 进入平台,可以看到目前应用已经执行的 SQL。 4. 查看审核报告,用户可以通过审核任务的审核报告了解到应用的 SQL 是否符合预设审核规则,以便及时作出调整。 2. 4. 新增 TDSQL 分布式审核规则 本期新增 TDSQL 分布式审核规则,以满足分布式应用场景。 SQL 审核 | SQLE 2.2306.0 来啦! SQL 审核 | SQLE 2.2305.0 来啦! SQL 审核 | SQLE 2.2304.0 来啦!
,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 二、新版本主要功能介绍 1、SQL上线流程优化 社区版的SQL审核上线流程支持了审批环节,可以为不同的项目配置不同的审批人权限。 3、审核任务添加消息推送可以实时推送审核报告结果 目前审核任务做自动审核时,用户在脱离平台时无法感知。因此给审核任务审核结果消息推送,达到整个SQL审核任务流程闭环。 并输出审核建议 [#442] Mybatis Scanner 添加命令行参数可配置跳过无法解析的SQL [#429] 审核任务的审核详情界面展示审核时间, 通过率, 评分信息等详细信息 [#453] 权限系统优化 -> SQL上线】; 审核任务新增权限:“创建审核任务”,“查看他人创建的审核任务”,可对审核任务进行细分的权限管理。