通过三大应用场景,掌握SQL质量管控的正确落地姿势
前言
随着开源、国产数据库应用的兴起,数据库性能面临越来越大的挑战,而80%的性能问题由不良SQL引起。因此,企业需要在开发、测试、运维整个阶段引入并实现规范化、流程化和自动化的SQL质量管控,尽可能前置性地解决由SQL引起的数据库性能问题。
数据库故障多由SQL质量问题引起,在开发测试、发布上线、生产运维过程中缺乏有效的审核管理和流程规范,可能将性能隐患带入生产环境,以致于应用发布上线后爆发各种性能安全问题,影响业务使用。因此,构建一套规范化、流程化、可度量的SQL全生命周期质量管控体系至关重要。
SQL全生命周期质量管控解决方案围绕SQL的全生命周期,涵盖开发测试、上线发布、生产运维三大阶段,在流程中结合企业沉淀的数据库开发规范、数据库运维规范、数据安全与管理等规范,适配用户现网流程,建立度量体系,有效跟踪、管控并提升SQL质量。以下介绍SQL全生命周期三大阶段中,SQM(SQL质量管控平台)应用场景能够为客户带来何种价值。
开发测试阶段的SQL审核,核心是通过沉淀用户及专家经验,构建SQL规范标准及流程,将审核前置,提前规避风险。在此过程中,SQM具备的IDEA插件工具可以帮助开发人员在开发过程中随写随审,通过一键选择完成SQL审核,无须改变代码编写习惯;Jenkins插件可适配多种构建模式,支持全量增量审核及流程阻断能力,提升问题SQL发现效率,加速问题闭环。
发布上线阶段,由于无法保证之前应用开发阶段严格遵守表结构设计和变更规范,无法全面评估结构变更风险,因此,需要建立统一发布流程平台,实现流程端到端自动化管控。在工单发布流程中,SQM可针对发布过程中的变更SQL进行审核,发现其中的高危SQL;支持以拖拽的方式进行流程编排和自定义配置审核相关项,满足不同客户个性化需求;同时,变更脚本可自动化执行,减少人为操作,提升发布审核效率。
生产运维阶段主要分为存量业务SQL审核、查询类SQL审核、元数据管理三大子场景。
存量业务SQL审核:运维人员通过SQM定期发起连库审核发现问题SQL并对接开发人员整改问题,减少问题SQL导致的生产业务性能下降及生产故障;若出现问题故障,可依据周报或SQM历史审核结果快速回溯。
查询类SQL审核:开发人员在申请查询数据库权限时,可通过SQM自动审核查询SQL提前识别并自动阻断敏感、高危、低效SQL语句,降低查询类SQL的故障风险;此外,针对不同客户的业务系统,SQL阻断规则可单独定制,满足个性化需求。
元数据管理:在客户的自动化资产管理流程中,运维部门通过使用SQM的OpenAPI对接客户资产管理系统,方便资产部门进行资产管理,降低发布流程风险;通过SQM做自动化进行生产库和测试库元数据对比,及时发现数据结构差异。
SQM-SQL质量管理平台面向应用全生命周期,具备覆盖广、扫描快、审得准三大特性。
覆盖广支持商业/开源/国产数据库、多源硬件架构,可覆盖90%以上的使用场景
支持多种开发和审核模式,应用开发全场景覆盖
极速分析效率,把握SQL黄金调优期
灵活部署,快速适应不同规模、不同场景
基于规则的独家双引擎:SQL解析引擎深度解析,专家引擎精准审核
SQL质量可视化,有效质量跟踪,给出优化建议