研发过程数据库设计评审优化实践
2022-04-29孟凯雷平禹熹
孟凯 雷平 禹熹
关键词:数据库变更;健康检查;变更评审;指标驱动
1技术背景
目前,研发部门对于数据库设计的重视程度比较高,特别是在金融行业,研发部门配备集中的数据库变更评审小组进行数据库设计把关[1]。通过对相关技术方案以及配套流程进行调研,本文梳理出目前数据库变更设计评审过程中主要遇到如下挑战。
(1)缺乏高效协作。数据库建模过程、变更评审流程、研发管理流程关联不足,参与各方的信息共享成本较高,导致数据库变更效率不高。
(2)数据库设计门槛高。目前,组织采用专门的数据库建模软件进行数据库建模及管理,由于软件的专业性特点,对数据库管理人员具备的知识和技能要求较高。
(3)评估标准不统一。根据业务场景不同,通常组织内系统会采用多种数据库产品,且随着产品版本迭代,各产品的设计规范、最佳实践有所区别,对评审人员的技术、经验有较高要求。另外,数据库变更类型较多,评审规则、风险识别标准不一,导致评审的成本较高,质量也不高。
(4)缺乏全局影响性评估。在较短的时间内进行数据库变更设计,对整个数据库系统影响性未知,对有血缘关系的系统的影响性缺少分析手段。而且,由于应用系统调整导致的数据库问题捕获成本较高,往往在上线后才被发现,可能带来较严重的生产问题。
为了解决这些问题,本文提出了一种高度灵活配置、自动化评审、整体健康评估的数据库设计评审方案,通过嵌入现有研发流程,实现对数据库变更的规范检查、风险评估、影响性分析,并对整体数据库的健康情况进行实时分析。
2设计思路
本文通过与建模元数据信息对接,实现可兼容主流关系型数据库变更评审的统一平台。本方案从数据库变更角度和全库整体角度出发,通过分类可配置的变更评审规则,实现跨数据库类型的规范设计检查、变更风险提示、影响性分析功能;建立数据库监控组件,对数据库对象设计、热点SQL语句、配置参数层面进行全面、实日寸监控。另外,基于元数据信息,通过大数据库配置信息及数据转移配置工具,建立跨系统间元数据表级血缘关系,扩大变更影响评估范围。
2.1建立数据库变更评审门户,打通流程断点
为保证数据库变更设计、评审、版本发布等流程的畅通,在原数据库设计评审流程的基础上,建立了数据库变更评审平台,对接建模平台、组织研发流程平台,同步系统信息、建模数据、数据字典、验证环境信息,实现数据库变更流程的一站式服务平台[2]。通过各个平台的数据同步及接口开发,进一步实现数据库变更申请、数据库变更评审及版本提测流程平台化,帮助数据库设计人员及评审人员有效地处理数据库变更任务、跟踪任务状态、统计变更信息。图1为变更评审平台示意图。
2.2规范数据库设计建模,提高建模效率
在实际使用的过程中,设计人员普遍反馈数据库建模的时间成本较高.对建模软件的熟悉程度和对数据库设计规范的理解程度影响建模的效率。因此,本文对此做了两处优化。
(1)通过导人梳理词根、业务术语等数据字典,引用智能匹配识别组件,实现建模输入信息检查,为数据库设计人员提供元数据定义辅助功能,对建模数据根据规范与录入要求做提前检查,减少建模沟通成本。
(2)梳理ER建模相关属性,通过ER建模标准模型定制开发建模批量工具,通过建模接口实现建模元数据批量录入模块。此场景适用于系统集或新建大型系统数据库设计,可通過数据库设计文档、元数据清单的输入自动转换为ER模型,对接元数据规范输入预检工具,实现批量建模检查、批量建模导入,满足大规模建模需求,提高建模效率。
2.3实现自动化变更评审,提升评审质量
为保证数据库建模的统一标准和质量,须针对不同的变更类型(图2),从不同的影响性角度进行评审[3-4]。为了更有针对性地对DDL变更进行评审,本文对变更类型进行分类,并将评审规范和影响性评估抽象成指标,针对每一类语句,制定评审指标集合,逐项进行过滤检查,既提高了检查效率,也确保评审的标准和质量一致。对于不同的数据库产品,参考各产品的限制及最佳实践,形成按产品版本、变更类型等维度分类的评审规则库,支持各变更评审流程中动态选择评审套餐,实现标准化、可配置的评审功能。
2.4数据库健康分析监控组件
通过数据库变更评审平台,实现以数据库变更为任务单元的评审工作(图3),围绕变更内容进行审核和风险评估[5-8]。然而,数据库系统提供服务,是由DML语句进行驱动的,数据库的表现如何,是否有性能上的或者故障隐患,离不开整体的运行环境——硬件、参数、事务、语句、索引、表数据量、场景、流量压力、数据库产品特性等。为满足此类需求,需要实现数据库综合健康分析的能力。结合组织设计规范、业务场景及最佳实践,通过“Prometheus+Grafana”方案,配置数据库健康分析监控组件。该组件除了实现SQL审核、静态对象分析、设计规范检查、配置参数检查外,最大的特点是通过收集数据库运行信息,对数据库运行情况进行分析,其中包括热点SQL分析、全表扫描语句分析、未使用索引分析、长事务分析等,并可根据数据库的不同使用场景,定制不同阈值的检查模板,实现个性化检查任务。
2.5外围服务组件
通过分析、加工来自各平台的信息,实现开发、设计人员关心的数据库服务。
(1)通过图数据库,建立表级数据库系统血缘关系,帮助设计人员及评审人员快速分析变更的影响性。
(2)实现生产、研发环境数据库DDL代码基线快速比对功能,保证生产环境、研发代码库代码的一致性。
(3)实现数据字典快速搜索功能。
(4)实现数据库设计文档生成及下载。
(5)通过语义分析,实现增量数据库变更SQL生成功能,集成测试环境进行一键测试。
3结束语
本文首先介绍研发过程数据库变更评审现状以及面临的问题:其次分析现有技术背景和业界技术方案,并结合自身实际引导出本文设计思路;最后推导出本文提供的解决方案。
本文通过优化流程,建立了基于规则指标的数据库变更评审工具以及健康分析组件,大大提高了研发过程中变更评审质量和效率,并协助各业务系统检查设计中存在的问题及隐患,使设计缺陷率大为降低及生产事件大大减少。
未来,计划在现有技术的基础上,精炼优化评审规则,根据历史评审数据及生产事件,提取评审要素,实现数据库健康准确把脉。另外,为了与多平台适配推广,计划将进一步实现服务模块化,为数据库设计人员提供更方便、高效的服务。