证券行业属于数据密集型行业,海量高价值历史数据和爆发式用户增长带来的海量实时数据是证券行业的发展引擎。这也就意味着证券行业对数据库提出了更高要求,曾经的国外传统集中式数据库主流解决方案弊端逐渐暴露。国产数据库市场亟待完善,腾讯云数据库作为国产化建设中的重要一员,为广大客户提供满意的国产化解决方案。最近,腾讯云数据库TDSQL也以优异的产品能力荣获2022年全球数字经济大会产业创新成果奖。
在证券行业,腾讯云数据库也落地了多家机构的核心系统。国信证券新业务系统选择采用腾讯云企业级分布式数据库TDSQL+中标麒麟系统+海光服务器模式,承载国信证券的OTC交易柜台系统、反洗钱系统和HR人力管理系统等,实现证券系统全栈国产化。上线运行以来,承载了单日亿元级别的交易规模。(点击此处,了解详情)
本篇转自国信证券系统运行部颜龙发表在《交易技术前沿》第48期的文章《国产分布式数据库在证券行业的应用价值》。文章详细介绍了国信证券进行国产分布式数据库升级前的调研工作以及升级后的应用价值,颜龙结合国信证券反洗钱实践案例验证了国产数据库完全有能力替代证券系统特定业务类型现有的集中式数据库。以下为文章全文:
随着证券业务发展以及数据库技术进化,加上国产化加速的推动下,传统数据库逐渐面临困境。本文将解读这些困境,以此出发阐述我们关于国产分布式数据库在证券行业内应用价值的思考。然后通过我司的反洗钱实践案例来进行探索验证,并尝试讲述国产分布式数据库如何扬长避短,在证券行业的各类业务场景下产生最大化的价值。
一、概述
近年来,证券行业线下服务转型线上化进程加速,包括营销获客的方式、AI单向智能开户、非现场业务的办理、在线直播、小程序、小视频等互联网方式的使用等,同时近年证券市场行情火爆,证券用户数量和并发量大幅提升,从而对支撑业务的IT系统及数据库提出了更高要求;伴随在证券公司进入全面创新发展阶段,证券业务品种也日渐增加、业务流程复杂度不断提高,现有非国产集中式数据库架构在满足新业务、新监管规定以及今后一段时期内部控制管理的高效率监控及管理的需求方面已逐渐困难。
证券行业为数据密集型行业,发展至今已经累积了海量的高价值数据,目前每天产生海量的新数据。在海量用户和大数据量下,当前行业主要使用的国外传统集中式数据库弊端逐渐体现:集中式数据库体系架构缺少计算存储分离、弹性伸缩能力、跨数据中心的高可用能力;容量面临瓶颈,依赖垂直扩容,且很难做到业务透明或者无感知,成本高昂;此外无法满足自主可控及国产化的目标。
然而,随着数据库领域技术近年来的飞速发展,云原生数据库、NewSQL、分布式数据库等具备业界代表性的数据库产品进入人们的视野。基于对数据库领域技术发展趋势以及新技术产品的了解,结合证券行业现状以及我司IT系统的实际情况,我们初步认为国产分布式数据库有能力解决我们的当前困境,可以满足证券行业的业务场景需求,且在我司具备落地的条件。接下来我们将对国产分布式数据库在证券行业中的应用价值进行探索和验证。
二、国产分布式数据库
2.1 基本能力和适用场景
现在让我们来看看分布式数据库具备了哪些基本能力,解决了哪些问题,以及可适用于哪些场景。
首先,受限于传统架构,集中式数据库使用复制和切换作为主要手段的高可用模式已逐渐无法满足金融交易业务场景日益增高的可用性要求。而分布式数据库具备了更完善的高可用能力,以一个集中统一的视角管理所有数据库组件,任何组件异常都可实现自动切换,保证整体的可用性。此外,数据通常由多副本保存,主副本与其他副本之间通过raft或paxos等协议实现数据的强一致性同步,可保证数据不丢失。
然后,针对容量瓶颈,包括计算能力不足和数据大容量问题,分布式数据库使用了存储计算分离和数据分片的技术,使得其架构支持计算能力和存储的横向扩展。一方面,集群的计算任务主要由计算节点承担,计算节点可以做到无状态从而实现线性扩展;另一方面,数据按照特定规则切分成分片,每个分片保存特定部分数据。由此,我们可以通过增加计算节点来扩充计算能力,通过增加分片来实现数据库量的扩容,且理论上是无限扩容的,而在这个基础上可继续实现弹性扩缩容。
其次高并发问题是传统集中式数据库难以解决的问题,因为单台服务器的并发和计算能力总是有上限的。而对于分布式数据库,一方面,应用的并发会话可以由多个计算节点承担,分散了并发访问的压力;另一方面,分布式架构将数据打散到了各个分片之中,相当于分散了并发请求带来的读写压力。因此在理想的情况下,分布式架构下的并发能力也是支持线性扩展的。
再次,成本问题也是传统集中式数据库所面临的痛点。就如前所述,传统架构缺少横向扩展能力,因此面临增长的业务、扩大的数据容量,数据库只能选择垂直扩展来获得服务器资源上的补充。但昂贵的CPU资源向上堆砌、内存和存储扩容所带来的成本不菲,并且很容易达到最终瓶颈。分布式数据库则将垂直扩容转变成为了横向扩容,构成计算存储节点的每一台服务器都并不强依赖高性能服务器。在这个情况下,增加节点可以轻松解决资源扩容问题,而成本相对于垂直扩容则要低很多。
最后,国产化的大环境问题也是证券行业目前重度依赖的非国产商业数据库所无法绕开的问题。国产分布式数据库目前基于开源数据库自研扩展为分布式架构,甚至做到真正意义上的全自研。因此国产分布式数据库是国产化的一个切实可行的发展思路。
综上所述,我们认为国产分布式数据库有能力解决行业数据库目前所面临的困境,在OLTP在线交易型、OLAP在线分析型业务、互联网高并发型、交易型和分析混合型的证券业务场景下,都将有不同程度的应用价值。
2.2 基本现状简述
如我们所知,当今分布式数据库主要有两大类:第一类是从单体数据库和自研中间件演进而来的分布式数据库,我们习惯称之为数据库中间件型分布式数据库,目前在国内比较成熟的有TDSQL MySQL版、TDSQL PG版、GoldenDB、HotDB、GuassDB-300等;第二类叫做NewSQL,也叫原生分布式数据库,国内相对成熟的有TiDB、OceanBase。此类数据库架构的每个组件都是基于分布式进行设计的,天生自带分布式基因。NewSQL从分布式NoSQL存储出发,演化出关系型数据库能力,从而进化成为分布式数据库;而中间件型分布式数据库则从关系型数据库出发,融合分布式特性增强架构能力,最终成为分布式数据库,二者殊途同归。由于关系型数据库的实现难度是远大于分布式存储的,因此中间件型分布式数据库相当于走了捷径,大幅降低了产品工程开发的工作量,同时降低了引入风险的可能性,基于现有生产数据库也使其能够更快地走向成熟、稳健。而NewSQL的发展道路相对艰难,但它也带来了数据库架构革命性的改变。
基于以上情况,同时针对我司IT系统实际情况进行考量,我们尝试在NewSQL和中间件型分布式数据库中各选其一进行探索和引入。因篇幅原因,我们接下来选取其中一个关于TDSQL PG版的实践案例进行介绍,验证国产分布式数据库在我司的应用价值。TDSQL PG版为系列产品中具备HTAP特性的版本,兼容我司相关传统数据库协议。
三、探索案例
我司反洗钱系统目前拥有7T业务数据(大表记录数十亿级),应用同时具备了OLAP和OLTP两种业务行为,并且使用了存储过程、窗口函数等复杂数据库功能,在众多业务系统中具有代表性。我们尝试使用TDSQL PG版对其进行适配落地,来验证分布式数据库的应用价值。我们组建了项目组并进行了大量的适配和测试工作:挑选了典型的业务场景;部署了全量数据的测试环境;进行了异构数据迁移;针对目标数据库产品特性进行了应用的SQL改造;基于分布式的表结构改造;后台作业、框架升级、页面功能改造以及各类数据库软件适配性问题的解决。
3.1 选择TDSQL PG版进行适配
如前所述,反洗钱业务兼备了OLTP和OLAP的特征,对此TDSQL PG版的HTAP能力具备独特优势:
1、满足OLTP业务场景的高并发需求,同时也能解决计算能力的不足的问题;
2、满足OLAP业务场景的计算密集型需求,同时也能解决大数据量下的时延以及吞吐量问题;
3、可获得代价、性能、维护成本之间的权衡,同时考虑大批量数据的迁移改造成本。
此外TDSQL支持分布式事务、自定义函数、存储过程、窗口函数,分片键改造支持自动指定,等。因此TDSQL PG版具备较为契合的特性来对反洗钱系统进行适配。
3.2 适配收益
3.2.1 高可用架构能力的提升
当前反洗钱系统运行在集中式数据库上,使用传统复制技术部署了一台实时同步的备机。当主库故障的时候,需手工切换至备库,同时应用修改ip地址指向以恢复服务。即一主1备架构,切换为手工操作,高可用切换时效约为分钟级。
在反洗钱TDSQL PG版测试环境中,我们部署了3个DN的分布式集群。每个DN即为一个高可用单元,由1主1备共两个副本组成,分别部署在2台服务器上。从副本数量上来说,其高可用能力相比当前集中式架构得到了增强。且得益于TDSQL PG版的分布式架构,反洗钱数据库有了分散集中故障风险的能力。每个DN的主备之间均为自动故障切换,时效为秒级,因此从切换时效上来看,反洗钱数据库的高可用能力也得到了增强。
3.2.2 可扩展性方面的改善
反洗钱系统当前的集中式架构仅适用垂直扩容。对于物理机服务器计算能力来说是几乎无法实施扩容的,如CPU、内存。而对于存储容量来说,垂直扩容的量是有上限的,取决于硬件支持能力。我们无法无限制地挂载存储盘到一台服务器上,否则会引发服务器运行稳定方面的问题,并给运维工作带来困难。反洗钱主库为接入了16T容量FC-SAN存储的物理机服务器,备库为VSAN存储物理机服务器。当前主库服务器挂载的存储容量已到达Linux LVM单卷上限,挂载存储盘数量已达18个,继续垂直扩容的价格、维护成本极高。当前存储使用率高达90%,而行业监管要求存放5年历史数据,因此预测其数据量还有40%左右的上涨,当前反洗钱数据库架构已面临严峻的容量考验。
反洗钱TDSQL PG版架构具备分布式优势,适用横向扩展。数据以分片的方式存放在了各个DN中。当集群中DN服务器资源平均使用率较高的时候,比如存储容量,我们可以给集群添加一组DN,其中包含2台服务器。也就是说,随着反洗钱业务数据量不断的上涨,总是可以通过给集群添加DN来进行容量扩充。而且操作在线进行,可通过集群自身的平台能力进行自动化管理。
图4 反洗钱分布式架构的横向扩容方式
不仅存储容量,承载了集群主要计算能力的CN节点也支持横向扩展。当集群计算能力不足时,则添加适当数量的CN节点,即达到扩充计算能力的目的。
3.2.3 性能对比
我们给出典型业务场景下的性能对比结果:
TDSQL PG版双分片架构在三个场景下优于或不差于现有系统,整体上来看反洗钱TDSQL PG版架构表现良好,能够满足反洗钱业务场景的需求。
3.2.4 自主可控及国产化
在测试过程中,我们分别对X86以及ARM平台下的TDSQL PG版反洗钱系统进行了验证,运行稳定,达到预期。使用TDSQL PG版的情况下,反洗钱系统即可脱离集中式数据库的限制,实现完全自主可控,因此满足行业国产化的要求。
3.3 案例总结
经过本次探索和实践,我司发现基于TDSQL PG版的反洗钱系统在海量数据下的性能、扩展能力、高可用、灾备、运维、成本节约等方面都有显著提升,TDSQL PG版作为分布式数据库能够为证券业务场景产生应用价值。
四、应用价值
首先,国外商业数据库已有几十年的发展历程,占据了全球高份额市场,产品能力成熟。相比之下,国产集中式数据库在综合产品能力上还处于起步和发展阶段,需要借助架构来弥补劣势;其次,国产服务器在硬件能力上还略逊色于目前市场主流品牌,因此凸显单体服务器性能瓶颈问题;第三,国产基础设施的可靠性仍需要进一步提升。以上需求导致了我们需要通过分布式架构来解决容量扩展问题,并提升可靠性和冗余度。
以上种种,说明了分布式数据库的一个核心特点和价值:架构横向扩展能力。分布式数据库有能力执行单台服务器无法完成的计算、存储任务,借助分布式架构可以提高系统的整体可靠性和吞吐能力。但同时我们也注意到,分布式数据库有擅长的业务场景,也有能力无法覆盖的场景。面对不同的应用与环境,分布式数据库既拥有特定的优势也存在某些劣势。正如不存在完美的架构,单一的数据库架构无法覆盖我司所有的业务场景。
从国产分布式数据库的行业应用情况和发展潜力进一步分析,同时结合我司的实践案例和业界同行的使用经验,我们认为国产分布式数据库经历多年的打磨,目前已具备成熟、可持续发展的生态。
此外在银行、保险、证券等金融行业有许多成功案例,其中包括银行核心系统案例,其稳定性、可靠性已得到验证,可以满足金融级数据库的要求。然后,具有HTAP代表性的反洗钱系统成功完成基于TDSQL PG版的迁移,证明以TDSQL PG版为代表的国产分布式数据库有能力替代证券系统特定业务类型现有的集中式数据库。
其次,分布式架构为我们带来计算、存储横向扩展能力的同时,也不能忽视分布式事务带来的时延问题,在一些低延时场景还需要连同业务角度一起去研究其可行性;此外,产品成熟度也是我们对国产分布式数据库进行选择的重要考量之一,运维工具便利性、附属功能缺失、软件BUG是目前各类国产分布式数据库所面临的普遍问题。
最后,我们还要充分理解分布式数据库给我们带来的管理方面的挑战。分布式数据库架构相对于集中式数据库更庞大、运维复杂度更高。同时,我们还需要关注资源使用率的问题,避免分布式架构导致的服务器资源浪费问题。
整体上说,在未来的一段时间里,国产分布式数据库可以替换我司部分场景下的业务系统。而随着产品不断的更新优化和技术发展,国产分布式数据库可以为我们带来越来越多的可适配场景。国产分布式数据库在我司将有越来越多的用武之地,可在证券行业产生越来越多的应用价值。