当前位置: 联合头条网 > 探索 > 正文

云和恩墨的罗海雄【云和恩墨SQM携手30+家金融企业,探索金融行业SQL质量控制的最佳实践】

这些年,国内金融服务提供商尤其是大型商业银行,近几年的客户规模及服务领域一直在飞速扩张,获得了可喜业绩的同时,其庞大的业务负载及系统运行压力一直考验着整个业务系统架构,而首当其冲的便是数据库运行效率。因此,这些银行都开始审视SQL质量管控的重要性,并为此进行了组织内的现状调研分析,SQM也受邀与很多银行进行了全面的产品适配和功能细节磨合。最终有近30家金融机构采用了SQM解决方案,并以SQM解决方案为基础搭建了跨组织和跨部门协作的SQL质量管控体系,实现了以质量控制、流程优化、效率提升为目标的质量能力提升。

一、业务挑战

从早期的SQL审核经验来看,由于技术和人力资源的欠缺,一般只覆盖生产环境的TOP SQL监控审核,但随着研发及测试人员的规模扩大,DBA难以承受大量的SQL问题排查,那么必不可免需要将审核方向转向测试环境和开发测试过程,这个时候有些开发部门就陆续引入了不同的工具进行SQL审核辅助,包括监控工具、审核工具等。限于工具的局限性,因此研发测试团队还是陷入了人工审核为主的困境,加上没有很好把握SQL审核介入时机,导致整个审核流程的低质低效。

二、管理挑战

管理方面,由于金融行业的项目开发涉及团队人员众多,角色分配管理也较为繁琐和复杂。大量并行的项目也带来了巨大的代码量,审核及处理等待时间长,审核效率十分低效。甚至由于管理漏洞等原因,存在部分开发团队或人员为了赶上线进度,违规发布很多未做审核的SQL代码的情况。所以用户这时候就想通过一种机制去管理开发人员,将存量SQL代码和增量SQL代码纳入开发测试环境进行审核,确保上线代码的合规性。

三、用户要求

在与行方的进行适配测试的过程中,SQM团队也整理了一些客户提出的主要目标:

将现有还存在的人工审核,转向半自动化或全自动化审核流程,缩短审核时间,提升审核效率和审核准确率

将SQM平台的审核流程嵌入到整个组织架构管理体系,覆盖到每个人、每条业务SQL

整个审核流程需要形成操作闭环,杜绝各种违规事件

对已经上线的系统和业务,要追溯到开发和测试阶段,从根源上杜绝各种隐患

四、解决方案

SQL质量管控要点

为了达成SQL质量控制目标,不同的用户需结合自身情况,从SQL质量控制要点出发,通过持续实践和迭代,并利用SQM审核工具覆盖开发环境和测试环境,进行SQL的审核与监控,具体解决方案如下:

1. 制度与规则

·以SQM平台驱动并监督开发审核工作,考核所有开发人员的SQL代码错误率或者风险率,并保证即将上线的功能的代码必须经过开发环节的审核并且通过后,才允许将该应用功能投递到生产上。

·审核规则:在SQM默认配置的审核规则基础上,根据实际审核工作量、审核难度、整改难度,进行规则的取舍,采取最为适合的审核规则,这些规则当中应当包括编写规范的审核规则和执行计划相关的审核规则。

·豁免规则:豁免规则需根据业务系统特性,作为审核规则互补而进行制定规则,适用于嵌入流程审核当中。

2. 项目与人员配置

·SQM平台为每个开发人员(项目参与者)开通一个SQM账号,用户负责人和接口人账号授予DBA角色,负责审核过程所需配置工作,其他人员统一授予DEV角色。

·以平台创建的项目作为开发环境和测试环境的一个关联纽带,将每个项目的使用权限分配给到相应开发组的开发人员。

3. 系统对接

·将SQM与用户现有的研发管理系统进行对接,将审核流程嵌入行方的管理系统,形成有效的信息互动。

4. 开发环节

·开发环节以工单为审核入口,工单包括创建工单人员、相关项目、审核规则数据源和SQL列表等内容,以项目为桥梁,对接外部系统。

·开发人员创建工单、通过工单配置的数据源到目标库获取执行计划,推送工单,将审核的SQL信息推送到对接的外部系统。

5. 测试环节

·对测试环境的数据库,所有项目(子系统)的测试库都配置到SQM监控,作自动采集与审核,使用审核规则与开发环节(审核工单)的审核规则一样。

·鉴于同一个测试库供多个项目(子系统)使用,或者一个项目(子系统)有多个测试库,设置一个测试库与项目(子系统)关系表。

6. 关联比对环节

·根据项目(子系统)进行关联比对配置,开发环节的同个项目的所有工单的SQL作为一个集合,测试环节中同个项目所有采集到的SQL作为集合,关联起来进行比对。

·开发环节和测试环节关联比对,是为了监控开发环节SQL是否都经过工单审核,按照行方的规定,开发出来业务功能的代码必定经过测试才允许移交生产。

7. 缺陷推送环节

·比对结果中标记为严重风险的业务SQL,需要推送到外部对接的系统中,并生成缺陷工单(BUG),同时按规定必须将问题SQL重新审核,才允许该SQL涉及到的项目(子系统)的业务功能上生产。

8. 豁免数据接收环节

·对于生成的BUG工单,如果需要优化的,则将语句通过线下方式重新导入SQM,以审核工单形式,补充开发环节的审核,如果申请豁免的,则通过接口返回SQM。

·SQM接收到的豁免BUG工单的SQL,将参与比对,视为测试环节SQL。

五、最终效果

SQM经过长时间的运行之后,有效解决了银行用户所面临的审核效率低下、准确率差等迫切问题,同时覆盖了研发、测试、上线、生产环境的全流程SQL审核管理,形成了自动化的审核管理流程,加强了人员操作的合规性,大力提升了现有数据库系统的运行效率和稳定性,因此SQM解决方案受到了很多用户和开发人员的认可。

关于云和恩墨

云和恩墨是全球化数据资产端到端解决方案提供商,致力于将数据思维带给每个组织、每个人,构建数据驱动的智能未来。我们在数据服务、运维平台、数据智能、教育培训等领域为企业和个人提供可信赖的产品、解决方案和服务,与业界厂商广泛合作,围绕用户需求,持续为客户创造价值、为行业培养人才,激发数据潜能,为成就未来数字化企业和数据人才而不懈努力。

云和恩墨坚持围绕数据时代客户面临的挑战持续创新,不断加大研发投入,持续完善贯穿业务智能、开发管控、云管平台、分布式存储和基础运维的端到端产品和服务,助力企业和个人成功

转载请注明出处。