剖析企业级数据库测试方案 助力金融行业新型DB选型

来源:BanTech智库

作者: 中国银行软件中心(西安) 徐雅光 陈世强 韩路 杨硕

剖析企业级数据库测试方案助力金融行业新型DB选型

随着科技的不断精进,计算机的计算及存储能力取得了实质性的发展,进而推动关系型数据库技术不断完善和发展。传统的集中式关系型数据库技术日趋成熟,在各行各业的核心业务系统中扮演举足轻重的作用。但我们也清楚地认识到,虽然底层硬件的能力在不断发展,数据层面却体现出“广、大、快、杂和融合”的发展趋势,且发展速度远超底层硬件的增长速度。如何处理不断产生的大量复杂的数据,将是摆在传统集中式关系型数据库面前的一个难题。为了解决这个难题,行业内大都采用将承载数据库的底层硬件替换成更稳定、更高计算能力的设备、以及在数据库层面进行主从结构、读写分离、热数据缓存和分库分表这些方案。这些技术方案虽然在一定时间内解决了部分问题,但终究只是过渡方案,且应用侧实施复杂,治标不治本,无法在数据库架构层面提供根本性的解决方案。

面对众多挑战,企业需要选择新型数据库架构来应对各种复杂业务应用场景,随着计算、存储和网络能力的快速发展,带来了高IO、低延迟的传输体验,新型分布式关系型数据库逐渐登上历史舞台。如何在新型数据库中选择一款适合自己的产品和业务场景,是行业面临的一大难题,我们的需求是什么?要做什么样的选型测试?都是我们要研究的内容。

一、业务需求

当前金融行业绝大多数核心业务系统的数据库依旧采用传统的集中式架构,即使用高端小型机、集中式关系型数据库和集中式SAN共享存储来搭建的实现方式。数据库作为IT建设必备的基础中间软件,集中式关系型数据库无法适应海量数据以及高并发环境下对数据处理能力的要求,成为整体IT建设的瓶颈。

随着信创等国家战略要求,金融行业对数据库新型架构提出了更高、更迫切的需求:数据库要安全可控,从基础设施到基础中间件都要自主可控;要能多活容灾,以在数据中心发生故障时能保障业务系统继续稳定运行;要能满足业务较高承载能力,对于海量数据和高并发访问以及业务不断增长需求,可水平扩展来提升承载能力;要有高可用性,通过实例集群和数据副本等方式结合实现一个高可用系统。

除了梳理业务需求,我们还需要一套完备的数据库测试方案来支撑整个选型过程。

二、数据库选型测试方案

1.测试背景和目标

对测试背景、测试文档以及测试目标进行说明。测试背景描述测试活动的背景,包括现状、未来预期,以及相关领域的背景信息,整理出原始需求和数据库测试的对应关系;测试目标描述本次测试活动的目标,然后按照基本能力、其它特性和所需业务场景验证对应的各自目标。

2.测试计划

测试计划中对目标和大体范围进行详细计划,分阶段对涉及的人员及职责、环境资源和工具准备以及测试方案、测试执行、测试结果和分析以及最终测试报告进行开始和完成时间定义。

3.测试策略和要求

描述基本测试策略和要求,以及基本能力验证、其它特性和所需业务场景验证三阶段的划分原则和准入准出标准,每个阶段使用统一测试案例、测试数据和测试工具进行测试,还有对测试报告有统一输出要求。

4.测试方案

在整体测试中,最重要也是最耗时的是确定测试方案,这个需要对测试的内容和测试用例进行详细设计。范围包括基本能力验证和专项特性验证以及业务典型应用场景测试三部分,有具体的测试案例,包含详细的测试步骤和明确的评判指标。具体可以从九大方面进行测试内容和案例设计:

一是数据库测试需要的资源和部署,涉及测试需要的环境资源以及部署方式,比如高可用测试涉及多机房多地域部署。

二是基本功能测试验证,包括基本功能、语法、连库方式和协议以及在线变更测试等方面。

三是分布式数据库可用性测试,主要关注持续稳定运行能力和同城异地部署和灾备能力。

四是分布式事务特性测试,关注分布式数据库事务原子性、一致性和持久性,数据分片一致性等。

五是读写性能测试,包含简单读写性能、关联读写性能、读写性能与资源占用关系、无缓存的读写性能和读写分离。

六是数据迁移和导入导出,包含数据导入导出和迁移工具以及数据同步;比如从传统的集中式数据库中将数据取出来并迁移至分布式关系型数据库。

七是运维能力测试,关注实时运行监控、告警,数据备份,恢复日志管理,大事务拦截,集群管理等。

八是分布式数据库扩展性测试,包含单实例容量上限,在线动态扩缩容,扩缩容涉及的数据重分布等。

九是基于典型业务场景的能力支持测试,选择至少2个业务系统,然后在分布式数据库上进行功能及性能测试,包含不限于如下场景:

  • 针对复杂SQL的业务场景;
  • 高并发和大数据量场景;
  • 针对高速增长量的业务场景;
  • 针对异构数据类型的场景,比如结构化和半结构化和非结构化等;
  • 针对多数据场景,比如交易类、客户类、营销类、推荐类、行为类等。

5.测试准备

测试准备包含测试环境、数据和工具等统一准备。

测试环境要结合业务生产情况,比如数据量、并发量和高可用等级以及灾备等级进行筹备;测试数据按照接近真实典型业务场景对应的模型进行建造;压力测试工具按照业界主流进行选择,确保各家厂商使用同一工具即可。

如果测试环境和数据量无法按照生产进行满足,也可按照资源和数据量承载比例进行压缩,并基此测试多组数据进行结果的线性评估。

6.测试脚本和执行

按照测试方案进行测试,对测试案例涉及数据库本身的脚本进行编写和执行,最后记录相关测试结果。

7.测试报告

测试报告包含测试结果和测试分析两大部分,经过详细的测试,最终针对数据库的整体结果进行测试汇总,形成测试结果。再对测试结果进行分析,关于测试分析,是对测试过程中发现的问题及测试的结果进行总结说明。

企业要选择成熟、稳定的数据库商业产品,以及考虑其可靠性、稳定性、可扩展性、安全性以及服务能力等诸多因素,所以测试报告中也要包含这些因素应对的具体评判指标,最终结合每项功能、非功能和业务场景的测试指标情况来评估数据库的技术能力匹配度。

技术能力匹配度参考表单(部分内容),见表1。

表1 技术能力匹配度参考

剖析企业级数据库测试方案助力金融行业新型DB选型

具体内容需各企业根据自己实际情况定制,技术能力匹配度得分计算采用加权计分法,计算公式如下:

剖析企业级数据库测试方案助力金融行业新型DB选型

其中,S为总分;n为领域能力总数;P为能力的权值;V为能力分值;Bi用于表示当前能力具备情况。如果具备该能力则取1,反之取0。

三、结语

新型数据库选型是一个非常复杂的问题,一旦做了新型数据库改造的决定,就必须对技术路线的选型进行合理、充分的测试和论证,以保证传统集中式向新型分布式数据库改造目标的顺利实现,同时解决集中式架构下主从结构、读写分离、热数据缓存和分库分表等过渡优化方案。

企业在进行数据库选型测试的时候,一定要从内部梳理最真实、最迫切的需求和场景,然后据此选型和测试,即测试方案要从我们的业务需求和场景以及想要达成的目标出发进行制定。从众多数据库中选择最适合企业自身的产品,快速有效地适应业务需求的变化,提升企业核心竞争力,在残酷的竞争中保持核心技术优势。

-END-

这是科技创新最好的时代,这是属于我们每个人最好的时代,关注“BanTech智库”,专注银行科技发展,探索*界无**金融生态!