分布式数据库在⾦融⾏业的应⽤和展望
摘 要:数据库是应⽤系统的重要组成部分,⽽⾦融级数据库系统需要同时具备⾼性能、可扩展、⾼可⽤和⾼容错特性,传统数据库管理系统难以同时满⾜这些特性,分布式数据库系统成为主要的发展⽅向。本⽂论述了数据库技术的形成过程、主要类型和云原⽣数据库对分布式数据库的影响,分析了⾦融⾏业数据库的现状及向分布式数据库转型的潜在动⼒和路径,并阐明了分布式数据库适应⾦融⾏业的发展⽅向,最后介绍了腾讯在分布式数据库领域的技术积累和实践。
关键词:⾦融科技;分布式数据库;云计算;应⽤和展望
腾讯⾦融云总经理 胡利明
数据库技术作为应⽤系统的重要组成部分,从其出现开始就逐渐占据核⼼位置,⽬前⼏乎所有的计算机应⽤都⽆法离开数据库系统的底层⽀撑,⾦融⾏业尤其如此。⾦融互联⽹化的迅速发展要求⾦融数据库系统同时具备⾼性能、可扩展、⾼可⽤和⾼容错特性,传统数据库管理系统难以同时满⾜这些特性。为了应对⾦融互联⽹化带来的挑战,分布式数据库系统逐渐成了⾦融⾏业的选型⽅案。对此,本⽂将对分布式数据库在⾦融⾏业的发展进⾏深⼊的分析和探讨。
⼀、数据库技术发展历史和分布式数据库的现状
数据库技术发源于20世纪60年代,是⼀种通过⾼效⾃动化⽅式实现数据信息管理的技术⼿段,其出现奠定了⼀个新的计算机科学分⽀。随着计算机技术的⼴泛应⽤,数据库技术在计算机应⽤领域也变得原来越重要,⽬前⼏乎所有的计算机应⽤都离不开数据库系统的⽀撑,数据库成为数据处理的主要技术⼿段。
数据库的主要⽬的是实现对数据的有效管理,即实现对数据的分类、组织、编码、存储、检索和有效维护。随着软硬件技术的不断发展,数据库技术也有了长⾜进步。从数据管理的⽅式来看,数据库技术经历了⼈⼯管理、⽂件系统和数据库系统等多个阶段。
(⼀)数据库技术的形成过程
数据模型是数据库系统的核⼼,在数据模型发展的不同阶段,数据库技术也经历了以下3个发展阶段。
1. 层次模型和⽹状数据库管理系统
这个阶段的主要代表是IBM公司在1969年研制的层次模型数据库管理系统。层次数据模型是整个数据库系统的先驱,⽽⽹状数据库则奠定了完整的数据库概念、⽅法和技术。
2. 关系数据库管理系统(RDBMS)
IBM公司的研究员E.F.Codd在题为《⼤型共享数据库数据的关系模型》的论⽂中提出了数据库的关系模型,为关系数据库技术奠定了理论基础。在后来开发的各种数据库系统中,关系型数据库⼏乎成了垄断的态势。⽬前,虽然有各种新的
库技术奠定了理论基础。在后来开发的各种数据库系统中,关系型数据库⼏乎成了垄断的态势。⽬前,虽然有各种新的数据库形式出现,但关系型数据库依然在使⽤范围上占据了领导地位。
IBM在发布这⼀理论后,⾸先在⾃有的OS/390进⾏实现,当下还有⼤量的⾦融机构使⽤OS/390⽀撑关键业务系统运⾏。
真正使关系数据库技术实⽤化的关键⼈物是James Gray。Gray在解决如何保障数据的完整性、安全性
、并发性以及数据库的故障恢复能⼒等重⼤技术问题⽅⾯发挥了关键作⽤。关系数据库系统的出现,促进了数据库的⼩型化和普及化。
基于以上技术进步,Oracle打造了基于开放系统的Oracle数据库系统。Oarcle数据库系统的⾼速商业化发展,奠定了其在关系型数据库领域的霸主地位。
3. 新⼀代数据库技术的研究和发展
计算机技术的进⼀步发展,伴随很多关系型数据库处理起来捉襟见肘的问题,在这样的背景下,新⼀代的数据库应运⽽⽣。下⾯从数据模型、新技术内容、应⽤领域3个⽅⾯来阐述新⼀代数据库系统的发展⽅向。
(1)⾯向对象的⽅法和技术对数据库发展的影响
随着⾯向对象的⽅法和技术的出现,数据库技术也迎来了新的发展。数据库逐渐利⽤⾯向对象的⽅法和技术,建⽴了⾯向对象的数据库模型(简称对象模型),主要是在传统的RDBMS进⾏不同层次的扩充,如建⽴对象关系(OR)模型和建⽴对象关系数据库(ORDB)。
(2)数据库技术与多学科技术的深⼊结合
数据库技术与多学科技术的有机结合是当前数据库发展的重要特征。计算机领域中其他新兴技术的发展对数据库技术产⽣了重⼤影响,传统的数据库技术和其他计算机技术的结合、互相渗透,使数据库不断涌现新的技术内容。数据库的许多概念、技术内容、应⽤领域,甚⾄某些原理都有了重⼤的发展和变化,促使建⽴和实现了⼀系列新型的数据库,如分布式数据库、并⾏数据库、演绎数据库、知识库、多媒体库、移动数据库等。
(3)⾯向专门应⽤领域的数据库技术不断产⽣
为了适应数据库应⽤多元化的要求,在传统数据库基础上,结合特有应⽤领域和场景,研究适合该领域的特殊数据库技术,加强了数据库技术在特定⾓度的发展,出现了⼯程数据库、统计数据库、科学数据库、空间数据库、地理数据库、Web数据库等,这是当前数据库技术发展的⼜⼀重要特征。分布式和微服务的关系
(⼆)分布式数据库的分类
应⽤对数据库处理能⼒的要求越来越⾼,集中式数据库已⽆法满⾜数据处理的要求,需要更多的处理单元参与到数据的处理中来。为了应对这种处理要求,分布式数据库应运⽽⽣,并成为传统集中数据库的⼀个重复分⽀。
分布式数据库从数据的分布实现上分为以下3类:
1. Sharding(分⽚式)
在传统单机数据库上进⾏数据分⽚,通过业务层或中间路由层(Proxy)将不同的请求发送给不同的数据库实例。代表的⽅案有:业务层拆分,分库分表;基于Proxy的各类数据库中间件。分⽚是不得已⽽为之的⾏为,是由于单表达到了单节点处理的上限,需要通过分⽚的形式将处理要求进⾏分散。分⽚会为了满⾜数据库架构的要求⽽牺牲业务层的应⽤性能和灵活性。
商⽤的基于分⽚的数据库有IBM的DB2DPF,开源的MySQL同样⽀持分⽚的数据库能⼒。
2. Shared-everything(共享存储)
在共享存储的模式下,⼜可以细分为SharedDisk和SharedLog。
SharedDisk是将多个数据库引擎节点底层挂载在⼀个共享的存储系统上,所有的数据库引擎都可以看到所有数据,在多
SharedDisk是将多个数据库引擎节点底层挂载在⼀个共享的存储系统上,所有的数据库引擎都可以看到所有数据,在多个数据库引擎实例之前加载⼀个类似负责均衡的数据库代理层,将数据库负载分布到不同的引擎上,由于每个引擎都能看到所有数据,所以可以进⾏全量数据的处理,从⽽达到扩展整个数据库系统处理能⼒的⽬的。典型的商⽤产品有OracleRAC,DB2pureScale,开源的MySQL有My
SQLonCeph,MySQLonClusterFS。这种⽅式可提⾼底层共享存储的能⼒,通过增加数据库引擎节点来实现数据库处理能⼒的提升,同时由于所有的数据都可见,在应⽤层⾯的兼容性也更好。
SharedLog是近⼏年发展起来的技术。随着云计算技术的发展,出现了⼀些⾯向云端分布式存储设计的分布式数据库,提出了以数据库⽇志为核⼼的⽇志,即数据库的概念。通过利⽤分布式存储的优势,将数据库⽇志和分布式存储结合起来,实现数据库⽇志的⼀致性和⾼可⽤性,⽇志落地后其他数据再通过缓存逐渐落地,通过这种⽅式提⾼数据库的处理能⼒。代表的解决⽅案有AmazonAurora和MySQLGroupReplication。
3. Shared-nothing(纯分布式架构)
Shared-nothing是⽬前业界最新的全分布解决⽅案,具有单点、⽆中⼼、⽆限平等在数据库领域⾮常有利的特性,同时具备⾃动分⽚,⽆关联的请求没有公共的依赖路径,代表系统有GoogleSpanner/F1和TiDB。但⽬前产品在成熟度、性能和对应⽤的兼容性⽅⾯还都有局限性。
(三)云原⽣数据库对分布式数据库发展的影响
随着云计算技术的不断发展,“云原⽣”的概念应运⽽⽣。所谓云原⽣就是能够⽀持DevOps、持续交付(ContinuousDelivery)、微服务(MicroServices)、敏捷基础设施(AgileInfrastructure)、康威定
律(ConwaysLaw)等云技术的实现⽅式。与云技术深度结合的云原⽣特点也给分布式数据库的发展带来了巨⼤的影响,利⽤云技术⼤规模、⾼性能,以及敏捷的基础设施和多租户的共享机制等特性,可使原来在传统条件下分布式数据库⽆法达到的能⼒得到有效扩充。典型的例⼦就包括AmazonAurora、腾讯CynosDB、阿⾥云PolarDB等,这些分布式数据库解决⽅案充分利⽤了云平台,尤其是公有云平台的底层能⼒,⼤⼤提⾼了单⼀⽤户的处理能⼒,基于分时、空间换时间和最终⼀致性等多⽅⾯的优化,使得基于云原⽣的分布式数据库产品成为未来数据库发展的重要趋势。
⼆、⾦融⾏业对数据库的需求
(⼀)⾦融⾏业数据库的现状
⽬前国内⾦融⾏业使⽤的数据库还是以传统的国外商⽤数据库产品为主,⼤致分为以下⼏种情况。
1. 国有⼤型银⾏的数据库现状
在国有⼤型银⾏中,以OS/390为代表的⼤型机能够达到⼀定数量的占⽐,与之匹配的是IBM专门为OS/390⼤型机定制的DB2数据库系统,数据库产品和操作系统、物理设备⾼度整合,具有良好的处理能⼒和可靠性,⽬前主要⽤于⼤型银⾏的核⼼银⾏系统。但由于造价昂贵,且⽬前全球范围内使⽤的客户逐渐减少,其技术发展的速度相对缓慢。同时,由于中国银⾏业务发展突飞猛进,尤其是互联⽹
⾦融、移动⽀付等⾦融服务的爆炸式扩展,使得⽬前国内各⼤银⾏的⼤型机系统已经是全球最⼤规模的系统,整个系统的可靠性风险逐渐上升。
2. 部分股份制银⾏、城商⾏、农商⾏的数据库现状
在部分股份制银⾏、城商⾏、农商⾏中,由于历史原因还有⼤量基于AS400的IBMDB2数据库在使⽤,AS400上的DB2也是⼀个数据库产品、操作系统和物理设备⾼度整合的解决⽅案,开发性差。由于全球技术发展的趋势,AS400的市场占有率⼤幅下滑,从⽽造成了AS400的技术发展和⽀持都具有较⼤风险。
3. 多数⾦融机构使⽤数据库的现状
包括国有⼤型银⾏、股份制银⾏、城商⾏、农商⾏在内的众多⾦融机构,都在⼤量使⽤以⼩型机、⾼端x86服务器为硬件基础的Oracle,DB2等国外商⽤数据库。但受国际形势影响,使⽤这些产品具有很多潜在风险。
4. 其他类型数据库的探索
部分⾦融机构开始积极尝试包括⾃研、开源MySQL,PostgreSQL在内的各种数据库产品的探索。
(⼆)⾦融⾏业数据库转型的潜在动⼒
(⼆)⾦融⾏业数据库转型的潜在动⼒
随着普惠⾦融、数字⾦融的快速推进,数据能⼒已经成为⾦融机构在新时代提升业务能⼒的重要抓⼿。与此同时,移动互联⽹和电⼦⽀付业务的蓬勃发展,给⾦融⾏业的典型应⽤场景,如核⼼账户与账务交易、在线⽀付/移动⽀付交易业务、实时交易监控与指标分析等,带来新数据形态下的⾦融系统能⼒需求。
⼀是⾦融⾏业的数据急剧增长,对数据存储和管理提出了更⾼要求。以⼤型商业银⾏为例,通常拥有成百上千个业务系统以及上亿⽤户的海量数据,且数量呈现指数级增长,从TB级别增加到PB级。
⼆是⾦融⾏业对业务连续性能⼒更加重视。⾦融⾏业对IT端安全可控要求不断提升,在确保数据不丢失的同时,还要做好数据的容灾备份以及核⼼数据系统的“双活”。在数据库运⾏的过程中,数据通过各种技术被实时同步到两个数据中⼼的数据库实例中,当⼀个中⼼发⽣故障时,业务可以及时地切换到另⼀个中⼼,从⽽实现业务的不间断运⾏。
三是⾯临⾼并发业务和⼤⽤户量带来的系统压⼒。随着互联⽹⾦融业务的开展,⾦融⾏业⽤户量和⽤户⾃⾝的应⽤权限不断增加,持续⾯临⾼并发业务和⼤⽤户量带来的系统压⼒。如过去银⾏主要通过柜⾯接收账单查询,现在则依托移动端⽤户⾃助查询,在某⼀峰值的操作量就可能超过过去⼀整天业务操作量的总和。
四是要求移动应⽤响应速度更快。在移动互联⽹⽤户应⽤需求迅速增加的背景下,⽤户对移动应⽤的响应速度也有了更⾼要求,移动端响应必须做到秒级以下。除此之外,⾦融⾏业⾃⾝也需要提升数据技术能⼒和业务价值,增强⾃⾝的运营管理能⼒。
五是技术层⾯的国产化需求。随着贸易摩擦愈演愈烈,⼀系列的经济制裁和技术封锁使得⾃主可控变得越发迫切。⾦融业在稳定性和安全性上对数据产品的要求近乎严苛,所以急需能满⾜核⼼系统需求的真正国产⾃主数据库产品。
六是整体拥有成本⽅⾯的考虑。由于数据处理量的⼤幅上升,如果继续采⽤原有的国外商⽤数据库产品,⾦融机构需承担巨额成本,⽽⼤量的成本压⼒将促使⾦融机构逐渐采⽤更加廉价有效的分布式数据库解决⽅案,逐步替代原有的国外传统商⽤产品。
(三)⾦融⾏业进⾏分布式数据库转型的路径
1. 注意事项
⾦融⾏业已经⼤量使⽤了传统的集中式数据库模式,也已经具有了长期运维的经验,如何快速有效地实现从传统的集中式数据库到分布式数据库的转型,成为⾦融机构必须⾯对的问题。分布式数据库与传统的集中式数据库相⽐,有以下不同的特点,是⾦融⾏业进⾏转型过程中必须注意的。
⼀是分布式数据库通过将数据库处理的要求分散到多个处理节点,来达到提⾼性能的⽬标,所以在⾦融⾏业原有的业务逻辑上要进⾏相应的适配。对业务系统进⾏分层解耦,确定应⽤层、服务层及数据层的边界,以适应系统弹性扩展的需求。
⼆是分布式数据库要对数据进⾏分区,⽐如按照时间做Range分区、按照记录的某个特征值做Hash分区。保持每个分区的⼤⼩适中,才能更好地实现系统的负载均衡、调度以及扩展性。
三是需要充分理解分布式数据库的⼯作逻辑,从业务上尽量利⽤分布式的并⾏处理能⼒,将不同的任务进⾏并⾏处理,从⽽提⾼整体效率。同时,还要理解分布式带来的是整体效率的提升,针对具体业务的处理逻辑在低负载的情况下不⼀定⽐原有的集中式数据库效率更⾼,所以要针对这个特性进⾏应⽤逻辑预期的调整。
2. 规划建议
从传统集中式向分布式过渡的过程中,建议考虑以下建设规划,从⽽确保过渡的可⾏性和可靠性。
(1)先增量,后存量
对于⾦融机构内互联⽹跨界融合等增量业务,因为对安全性要求较低,不会发⽣⾦融安全风险,可以先⾏替换试验。当新上线分布式事务数据库能满⾜业务需求,并且相关业务⼈员已适应相关操作⽅法
和模式后,通过切割流量的⽅法逐步对存量的核⼼业务进⾏替换。在存量业务替换的同时,需要同时维护原系统的备份,作为灾备⽅案。当新系统稳定运⾏得到验证后,逐步下线原系统。
得到验证后,逐步下线原系统。
(2)按业务性能瓶颈顺序
分布式事务数据库带来强⼤的吞吐/处理能⼒,⾦融机构可对当前各类业务性能瓶颈进⾏分析评估,明确当前哪项指标急需分布式事务数据库⽅案进⾏解决,按照⼀定的优先级顺序,逐轮进⾏流量分割处理,在缓解现有业务压⼒的同时,验证新系统的各项能⼒,层层递进。
(3)按不同业务的技术实现类型规划
⾦融机构内的业务纷繁复杂,各类业务对信息系统的技术要求并不相同。如转账业务要求⼤并发的事务能⼒,批量计提结息业务要求⼤规模数据的并⾏处理能⼒,⽇志分析要求实时⼤规模的数据分析能⼒。所以⾦融机构可按照不同业务对技术的需求能⼒,安排改造顺序,从⽽逐步验证分布式事务数据库能⼒。
(4)注重知识储备和传递
分布式数据库在业界处于实践起步阶段。⾦融⾏业应⽤分布式数据库需要在实施阶段,⾸先进⾏深⼊的知识传递和过渡。
三、分布式数据库在⾦融⾏业的展望
分布式数据库的发展历史相对较短,尤其是国产分布式数据库,多是近年内各⼤互联⽹⼚商为了满⾜⾃⾝的业务要求,基于开源的和⾃研的能⼒发展起来的,在商业成熟度和⽣态建设上都⽆法与传统数据库媲美。因此,分布式数据库为了适应⾦融⾏业的要求,需从⾃⾝的⾓度也要快速发展、补齐差距,从⽽更好地满⾜⾦融⾏业的要求......更多内容,请查阅本刊2020年第5期杂志。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。