- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
全方位 SQL 质量管理平台 SQLE
爱可生分享于上海开源技术沙龙 #1(2024.03.02)
展开查看详情
1 .让所有人不再为 SQL 问题头疼 全方位 SQL 质量管理平台 SQLE SQLE 开源负责人 孙健
2 .什么是问题 SQL? 业务缓慢 业务中断 数据丢失 案例 • 某些查询未加索引,业务加载慢,影响用户体验; • 业务高峰期、出现高频查询未加索引导致数据库服务器资 源占满,整个业务瘫痪; • 开发者清理测试数据时不小心连到了生产库。 研发 or DBA 背锅?
3 .研发会在开发阶段优化SQL吗? 项目进度 开发经验 • 时间紧,赶进度,没时间考虑性能 问题优先满足需求; • 业务量小暂不用考虑性能问题; • 使用 ORM 框架,未接触实际 SQL。 3
4 .什么是 SQLE? SQLE 是一款全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。 支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。 4
5 .什么是 SQLE? 2021 年 10 月 24 日开源。 过去的两年多,每月发布版本: • 一共发布 26 个正式版本 • 新增大功能 60+ • 提交 commits 5000+ • 处理完成 issue&pr 1400+ • 累计收获 Star 1200+。
6 . SQL审核案例 案例:表字符集不一致导致部分场景下索引失效 建三张表,分别使用字符集 utf8 和 utf8mb4
7 .SQL审核案例 案例:表字符集不一致导致部分场景下索引失效 对比执行计划发现当字段的字符集不一致,表关联字段未命中索引
8 .SQL审核案例 案例:表字符集不一致导致部分场景下索引失效 每张表插入80万数据,执行时间差异大
9 .SQL审核案例
10 .SQL审核案例
11 .完善规则规范是做好 SQL 质量管理的第一步 SQLE 规则库 700+
12 .完善规则规范是做好SQL质量管理的第一步 更新规则库 优化SQL 审核 优化规范 SQL规则 SQL质量低 审核 SQL质量高 结果 SQL 质量正反馈 如何设计SQL规范: 质量如何量化: 问题如何优化: • 不同公司标准不一致(可灵活开关,可定制) • 评分 • 修改建议(知识库) • 审核提示(分级,要不要改,优先级问题) • 审核报告 • 辅助诊断(SQL分析) • 旁路模式(白名单) • 统计报表 • SQL自动优化 • AI 优化
13 .软件生命周期 开发测试人员 运维人员 需求分析 代码开发 持续集成 测试环境 UAT环境 上线部署 业务运行 问题处理 设计与实现 测试 部署与发布 生产与运维 SQL流转方向
14 .软件生命周期 开发测试人员 运维人员 需求分析 代码开发 持续集成 测试环境 UAT环境 上线部署 业务运行 问题处理 设计与实现 测试 部署与发布 生产与运维 SQL流转方向 几天,不影响生产 几天或几周,影响项目周期 几小时,不影响生产 几周或几个月,影响生产 SQL 整改效率 问题越早解决成本越低!
15 .不同阶段对应的审核手段 开发测试人员 运维人员 需求分析 代码开发 持续集成 测试环境 UAT环境 上线部署 业务运行 问题处理 设计与实现 测试 部署与发布 生产与运维 前期自助审核,及时反馈 提前介入,把握全局 规范流程,严控关口 持续监控,发现问题 • IDE 审核 • 上线流程审核 • 库表元信息审核 • 慢日志审核 • SQL客户端审核 • 应用程序审核 • TopSQL 审核 • 集成 CI/ CD 代码扫描 几小时
16 .审核前置:集成 IDE 插件 集成 IDE 插件实现代码开发 即审核
17 .审核前置:SQL 工作台方便业务开发快速数据检索及了解数据库 SQLE 与 CloudBeaver 集成 用户权限体系集成 双系统统一登录 所有的 SQL 操作通过 SQLE 审核管控,自动拦截不合规 SQL,提供 SQL 审核建议。
18 .审核前置:集成CI/CD流程,自动审核卡点 代码开发 SQL文件 SQL语句 SQLE 创建镜像 …… 审核上线 需求创建 代码开发 Mybatis/iBatis文件 IDE集成 审核 SQLE-Jetbrains-Plugin 审核结果/优化建议 CI/CD持续集成(Jenkins集成) 代码 自动 SQL 审核通过 提交 Build 推送 SQLE 需求创建 代码开发 代码 生成制品 …… 审核上线 仓库git 审核 SQL提取 提升效率:2 个工作日 SQL 审核等待 分钟级 完成 赋能开发,拉齐开发能力,推动企业开发规范落地
19 .标准发布:SQL 上线卡点(产品展示) • 多种格式文件 • 多环境发布 • 上线卡点,审核通过才 能提交工单
20 .标准发布:SQL上线卡点(产品展示) 1. 立即/定时执行 2. 执行中止 3. 无锁发布(Online DDL) 4. 备份回滚
21 .事后审核:持续监控,发现问题 审核结果 预警 业务库SQL获取与审核 问题SQL优化 (质量报告) (发给相关人员) APP 优化建议 反馈开发 协同优化 运行SQL 分优先级 生产 采集获取 反馈 数据库 数据库 SQLE 管理员 TOP SQL采集审核 慢日志采集审核 审计日志采集审核 应用程序审核 云数据库审核 库表元数据采集审核 21
22 .标准发布:SQL上线卡点(产品展示)
23 . SQL 质量管理方案:建立规范、标准发布、前控后督 ——自动化审核平台 SQLE+ 专家服务经验,闭环渐进式提升 SQL 质量 建立规范 上线前控制 SQLE 集成专家经验,SQL 规范标准化, SQLE 赋能开发,在代码开发阶段检查 SQL 质量, 看得见,解决事前审核规范不标准难题 SQLE 在智能审核,对测试、预发布等环境 SQL 进行审核优化 上线后监督 标准发布 SQLE 智能审核功能,生产环境进行 SQL SQLE 与企业内部上线流程对接,变更上线标准 审核优化 化,可追踪 手动上线/自动上线/项目上线 方案优势:规范标准化,建 SQL 规范 审核流程化,自动化,审核效率高,落地推进快 质量可跟踪,随着业务发展渐进式提升 SQL 质量,提升效果可量化 23
24 .产品架构 灵活高效 数据库管理员 应用 订单业务开发人员 CI / CD SQL SQL审核上线 SQL SQL监控 灵活应用与开发、测试、运 维变更、生产运维等审核场 SQLE审核平台 景,规则灵活按需调整满足 服务 项目管理 规则与模版管理 工单管理 智能扫描 门户层 不同业务场景 流程管理 报表统计 SQL工作台 平台管理 平台自动分钟级完成审核, 数据统计与分析 规则引擎 语法解析器 分析引擎 审核效率高。 核心 服务层 SQL客户端 数据库插件 智能扫描插件 SQL上线 CI/CD 、代码仓库 SQL文本、MyBatis、Batis文件 扫描层 慢日志、审计日志、TOP SQL、库表元数据 业务应用 数据库层 基础 开箱即用 资源层
25 .SQLE主要版本 社区版 专业版 企业版 免费(永久) 免费(永久) 定制 快速部署 立即申请 联系我们 适用于MySQL基础审核场景 适用于多种数据源类型体验场景 适用于私有云用户定制场景 支持纳管MySQL数据源 支持纳管10多种主流数据源 支持纳管10多种主流数据源 支持资源权限隔离 支持资源权限隔离 支持资源权限隔离 集成CloudBeaver在线查询 集成CloudBeaver在线查询 集成CloudBeaver在线查询 提供专业SQL审核能力 提供专业SQL审核能力 提供专业SQL审核能力 支持多方式采集MySQL数据 支持多方式采集各数据源数据 支持多方式采集各数据源数据 无实例限制 最大实例个数20 无实例限制 多维度智能统计 个性化定制
26 . 在线体验 地址 SQLE 社区版:http://demo.sqle.actionsky.com/ SQLE 企业版:http://demo.sqle.actionsky.com:8889/login?target=/ 登录用户 user password admin admin 测试 MySQL variable value host 20.20.20.3 port 3306 注意事项: user root 1. 该服务仅用于在线功能体验,请勿在生产环境使用; pass test 2. 该测试服务数据会定期清理。
27 .2024 展望 SQLE Roadmap 1. SQL 自动优化 2. SQL 上线流程优化 • 备份回滚 3.数据库安全 • 动态脱敏 • 数据库权限控制
28 .社区支持 微信技术交流群 欢迎加入微信群进行交流,反馈使用中遇到的问题或者使用建议。 进群方式:添加管理员微信 ActionOpenSource 爱可生社区公众号 关注爱可生社区公众号,获取最新 SQLE 动态包括新功能清单与产品规划。 相关链接 产品官网:https://www.actionsky.com/sqle 社区文档:https://actiontech.github.io/sqle-docs/ 社区版代码库:https://github.com/actiontech/sqle 管理员微信 爱可生社区公众号
29 .Thank you