审核任务介绍

一、背景

审核工单中我们介绍了如何通过 SQLE 进行 SQL 审核并上线的流程。在这流程中,通常是审核一些 DDL,如建库(create database)、建表(create table)和改表(alter table)等语句。 审核工单管理,主要解决 SQL 上线的规范化流程化的问题,它能够帮助 DBA 自动化处理整个 SQL 上线过程中一些重复繁琐的工作。

审核工单管理也有它的局限性。

  • 第一,通常审核工单管理 中流转的是 DDL 一类的 SQL,它们的上线通常是一次性操作。DDL 上线后,通常还会有业务 SQL(通常是 DML)访问数据库。这时可能会遇到一些执行效率较低的业务 SQL 造成数据库的性能问题。这类 SQL 是审核工单管理无法覆盖到的。
  • 第二,通常在使用审核工单管理审核需要上线的 SQL 时,项目已经临近发版,功能都已经实现完毕。如果这时审核出 SQL 存在一些问题,是否修复这些问题,可能会收到很多因素的影响(如 SQL 问题的影响面大小,项目发版的紧急程度等)。虽然这类 SQL 审核工单管理可以覆盖到,但因为外部因素,会导致问题 SQL 的存在。

SQLE 使用审核任务来解决上面的两个问题。

审核任务是基于 Cron 的 SQL 自动审核系统。一个审核任务的成功运行需要两方参与,分别是 SQLE Server 和 Scanner。在 SQLE Server 中创建审核任务。Scanner 将 SQL 上传到 SQLE Server 对应的审核任务的 SQL 池,SQLE 根据配置对 SQL 池触发审核,并生成审核报告

二、审核任务介绍

分类

类型 支持的数据库 SQL采集模式
库表元数据 MySQL SQLE 自动抓取
TopSQL Oracle / Oceanbase For MySQL SQLE 自动抓取
慢日志 MySQL Scanner 抓取
Mybatis扫描 ALL Scanner 抓取
应用程序SQL抓取 ALL OpenAPI 推送
自定义 ALL OpenAPI 推送

SQL采集模式

1. SQLE 自动抓取

由 SQLE 后台服务定期抓取,创建完审核任务后无需再做其他操作,即可再界面看到已经采集的SQL并进行审核。

2. Scanner 抓取

scanner 是SQLE支持的实现对特定场景进行SQL采集的一个客户端工具,通过调用 SQLE 的OpenAPI将SQL推送到SQLE,例如:scanner支持扫描MySQL慢日志 并实时解析文件中的慢SQL将SQL推送到SQLE。具体的使用参考:Scanner 使用说明

3. OpenAPI 推送

SQLE 对外提供标准的OpenAPI接口,任何人都可以通过调用接口来将特定场景的SQL收集并推送到SQLE,来使用审核任务的审核能力。用户可以自行实现scanner(可以是任何形式,bash脚本、python程序等)将SQL推送到审核任务类型为“自定义”的审核任务中并进行审核。

results matching ""

    No results matching ""