近年来,数据库领域围绕集中式和分布式的路线选择一直争议频频;而对于数据库改造进行的如火如荼的金融行业而言,在不同系统究竟应该如何选型数据库是让每个DBA都感到头疼的问题。所幸,这一问题的答案终于要有定论了。
近日,北京金融科技产业联盟正式发布了《金融行业开放平台数据库转型白皮书》(下简称《白皮书》)。《白皮书》由北京金融科技产业联盟牵头,国内头部银行和数据库企业参编,并获得数据库专委会“优秀课题”及联盟“十佳课题”,权威性和参考价值极高。《白皮书》最大的亮点在于,对于金融行业数据库到底是走集中式路线还是分布式路线,给出了极具价值的选型建议,值得所有金融IT从业者们择善而从。报告原文可在“北京金融科技产业联盟”官方微信公众号12月29日发布的消息文末获取。
现状调研:集中式数据库成熟稳定应用广泛,分布式数据库随新兴应用逐步推广
《白皮书》通过调研指出,金融业数据库中,集中式数据库“以其较强的功能黏性、优秀的系统稳定性、良好的软硬适配能力,目前在金融业的应用仍占据绝大多数份额”。而分布式数据库因能“更有效支持高并发、海量数据、超高峰值,分布式数据库在金融行业应用规模已经有明显提升”。
这一结论和近两年金融信息化研究所发布的《金融业数据库供应链安全发展报告》与《金融业数据库创新发展报告》不谋而合。据调查,2022年,金融行业集中式数据库占比达到89%,分布式数据库则为11%;而2023年分布式数据库占比提升至17%。集中式数据库技术方案发展早、相对成熟,更适合业务量适中的交易类业务场景,所以在金融业应用成效明显;而分布式数据库则能更有效支持海量、高并发、高吞吐量的新型金融业务应用系统,进而逐步取得推广。
《金融业数据库供应链安全发展报告》(2022)金融业集中式数据库占比情况
选型建议:金融数据库改造优先考虑集中式方案,存算分离架构受到关注
现代金融服务逐步从柜面向网上、移动响应式服务转型,同时现代金融业务海量数据、高并发、实时处理等需求推动了新一代分布式数据库的建设,《白皮书》中也提出各金融机构都在探索数据库转型的多种技术路线及推广,分布式数据库在金融行业应用规模已经有明显提升。无论是集中式还是分布式数据库架构,都要从业务需求出发,进行合适的选型。
根据不同的业务《白皮书》列出了集中式和分布式两种架构的比对:
可以看出两种架构,各有优势。虽然分布式数据前几年热度较高,但是在实际落地当中还是存在一些问题需要解决。比如
1.运维成本高:
采用分布式架构可以实现更高的可用性和扩展性,同时也带来冗余备份、网络交互等方面的开销,硬件节点使用规模快速扩张为大型数据中心的节能减排和机房规划带来较大压力。大规模分布式集群的系统复杂度呈指数级上升,必须具备与之适配的运维管理能力作为支撑。笔者了解到,部分大行在国产化后,之前的Oracle小机,分布式改造后,由于分布式数据库的冗余,资源利用率低,2台小机甚至需要50台以上的分布式数据库服务器,造成机房空间不够用,在本地数据中心扩容的同时,还在西部/北部新建数据库中心,来满足日益膨胀的数据库服务器。
2.应用改造难:
分布式改造不仅仅是数据库的改造,同时需要业务进行配合。《白皮书》中提到,“为充分发挥分布式架构优势,应用层也需要投入更多的研发设计成本,一是需要进行合理的数据分片设计,通过高内聚低耦合的数据规划,尽可能减少跨节点访问;二是需要在系统架构设计中充分考虑节点故障的容错及柔性事务的处理。”所以,分布式数据库 “较适合数据可实现完美分片的业务”。笔者参与过某金融机构的分布式业务改造,分布式数据库中的大表一般需要一个合适的分片键,比如用户唯一ID作为分片键,但是如果涉及到查询当日营业厅的所有流水业务,则需要跨服务器进行访问,性能下降50%以上。所以需要对业务进行合理的改造。同时改造又需要业务厂商的参与。从北京金融科技产业联盟的《分布式数据库金融应用发展报告(2023)》报告中,我们同样可以看出分布式数据库改造的时间成本是巨大的。
最后,《白皮书》也给出了两种架构的综合成本:
当前金融行业存量数据库以小库为主,所以大部分业务可以适合集中式数据库。
由此,结合集中式和分布式的特点,《白皮书》给出了选型的流程图供金融机构进行不同业务的数据库架构选型:
通过上图可以看出,《白皮书》认为对于金融行业关键业务的数据库,改造时还是以集中式部署作为优先考虑的方案。未来,分布式/集中式并行发展将在金融行业持续存在,需针对具体应用场景对数据库能力的需求和侧重,选择合适的数据库产品。
值得一提的是,在集中式架构中,《白皮书》还定义了“存算分离架构”。集中式的主从多副本架构中,还存在一些挑战,比如本地盘数据重构时间长、存算资源不能灵活扩展、本地盘亚健康无法监测问题。 随着存储能力的不断提升,在通过存算分离架构,数据库可“进一步实现副本缩减、容灾、备份能力下沉,IO 缩减性能加速、并发查询下沉等,进一步提升数据库的可靠性与性能。”
存算分离目前已成为趋势,近期发布的中国软件协会发布的《中国软件根技术发展白皮书(数据库册)》同样指出了这个趋势:国产数据厂商正逐步解决当前存算一体架构存在的问题。因此,新型存算分离架构正在迅速兴起,未来 2-3 年有望成为基础设施领域新的关注点,一些国产数据库厂商将在这一领域进行优化探索,数据库由“存算一体”向“存算分离”、由一写多读向多读多写架构演进。
开放平台数据库转型:三阶十二步,软硬协同是关键
《白皮书》从方案设计、迁移、投产三个阶段,给出了开发平台数据库的具体转型方法。
里面提到一个主要的转型设计思想-“软硬协同部署设计”。数据库系统涉及服务器、存储、网络、操作系统、中间件等软硬件组件,要充分协同各组件的特点及其能力,提升目标数据库系统的整体能力。如何汇聚数据库上下游产业链资源,快速建立起更加专业的技术支撑体系,打造更加完善的数据库服务工具和解决方案,白皮书给出了一个很好的案例:
这个案例是工商银行对标主机 DB2 和 Oracle 数据库,通过软硬件协同,提升性能,同时采用存算分离架构打破单库容量瓶颈,实现弹性扩容,首创建成多集群多中心部署的高可用架构,满足金融业务系统服务连续性要求。
1)通过多核并行、基于代价的分布式并发事务并发优化和全链路并行编译执行等,实现了分布式查询技术优化,具备百万级 QPS 能力;
2)通过计算存储分离、存储资源池化、在线弹性扩展等,具备 PB 级海量存储能力,良好的支撑了历史明细类、报表等金融业务专题的海量数据处理需求;单库数据量可以支持数十 TB,基本持平或超过传统数据库存储支持容量
3)同城双园区间通过存储级复制实现增量数据强一致同步,异地园区间通过异步方式实现增量日志同步,同城 RPO=0&RTO<180秒和异地 RPO<1 分钟&RTO<10 分钟的金融级高可用通力;
总体上,《白皮书》通过对当前金融业转型的具体调研,给出了开放平台数据库方案架构的选型建议和具体方法,并结合落地实践案例生动展示了开放平台数据库转型应该采用的设计思想。更重要的是,这本书基于头部厂商和金融头部用户的共识,给困扰金融行业多年的数据库集中式or分布式部署路线做出权威结论,给更多DBA改造方案选型提供了重要理论依据。“道阻且长,行则将至”,各企业DBA及数据库从业人员可以通过阅读本《白皮书》,学习到开放平台数据库的创新经验,共同推进金融行业的数字化转型。