来源:techweb
近日,《金融科技时代》(2020年第5期)刊发了腾讯金融云总经理胡利明的专题文章——《分布式数据库在金融行业的应用和展望》,文章全面回顾了数据库技术的形成过程、分布式数据库的分类以及云原生数据库对分布式数据库发展的影响,深入分析了金融机构分布式数据库转型需关注的要点和转型的主要路径,详细阐述了分布式数据库应用于金融行业的主要发展方向,最后介绍了腾讯云在分布式数据库领域的技术探索和实践,包括分布式数据库tdsql、分布式htap数据库tbase。
以下正文是重点内容的摘要:
1、数据库技术的发展历程和主要分类
目前数据库技术的发展经历了三个阶段:
第一阶段是系统层次和网状数据库管理系统,主要代表是ibm公司在1969年研制出的层次模型数据库管理系统;第二阶段是系统关系数据库管理系统,ibm公司的研究员e.f.codd在题为《大型共享数据库数据的关系模型》的论文中提出了数据库的关系模型,oracle基于关系型数据库的技术进步打造了oracle数据库系统;第三阶段是新一代数据库技术的研究和发展,一是在数据库的模型建立方面出现了面向对象的数据库模型,二是传统的数据库技术和其他计算机技术的结合、互相渗透,建立和实现了一系列新型的数据库,如分布式数据库、并行数据库、演绎数据库,三是面向专门应用领域的数据库技术不断产生,在传统数据库基础上结合特有应用领域和场景,出现了如工程数据库、统计数据库、科学数据库、空间数据库等。
分布式数据库主要分为以下三种类型:
一是分片式(sharding),分片式是在传统单机数据库上进行数据分片,通过业务层或者一个中间路由层(proxy)将不同的请求发送给不同的数据库实例。分片为了满足数据库架构要求而牺牲业务层的应用性能和灵活性。
二是共享存储(shared-everything),分为shareddisk和sharedlog。shareddisk是将多个数据库引擎节点底层挂载在一个共享的存储系统上,各个数据库引擎都可以看到所有的数据,在多个数据库引擎实例之前加载一个类似负责均衡的数据库代理层,将数据库负载分布到不同的引擎上,从而达到扩展整个数据库系统处理能力的目的。sharedlog是面向云端的分布式存储设计的分布式数据库,通过利用分布式存储的优势,将数据库日志和分布式存储结合,实现数据库日志的一致性和高可用性,日志落地后其他数据再通过缓存逐渐落地,通过这种方式提高数据库的处理能力。
三是纯分布式架构(shared-nothing),纯分布式架构是目前业界最新的全分布m6米乐安卓版下载的解决方案,具有单点、无中心、无限平,在数据库领域是非常有利的特性,同时具备自动分片,无关联的请求没有公共的依赖路径。
2、分布式数据库转型需要关注的要点
金融行业大量使用了传统的集中式数据库,并具有长期运维的经验,如何快速有效地实现从传统的集中式数据库转型到分布式数据库,成为金融机构必须面对的新课题。在启动分布式数据库转型之前,金融机构需要关注以下要点:
一是系统适配。分布式数据库通过将数据库处理的任务分散到多个处理节点上来达到提高性能的目标,所以在原有的业务逻辑上要进行相应的适配,对业务系统进行分层解耦,确定应用层、服务层及数据层的边界,以适应系统弹性扩展的需求。
二是数据分区。分布式数据库要对数据进行分区,比如按照时间做range分区、按照记录的某个特征值做hash分区。保持每个分区的大小适中,才能更好的实现系统的负载均衡、调度以及扩展性。
三是并行处理。充分理解分布式数据库的工作逻辑,从业务上要尽量利用分布式的并行处理能力,将不同的任务并行处理,从而提高整体效率。同时要理解分布式带来的是整体效率的提升,针对具体的处理逻辑在低负载的情况下不一定比原有的集中式数据库效率更高。
3、金融机构分布式数据库转型的路径
一是按照先增量后存量顺序。
对于互联网跨界融合等增量业务,因为安全性要求较低,不会发生金融安全风险,可以先行替换试验。当新上线分布式事务数据库能够满足业务需求,并且相关业务人员已经适应相关操作方法和模式后,通过切割流量的方法逐步对存量的核心业务进行替换。在存量业务替换的同时,需要同时维护原系统的备份作为灾备方案,当新系统稳定运行得到验证后,逐步下线原系统。
二是按照业务性能瓶颈顺序。
分布式事务数据库会提供强大的吞吐/处理能力,金融机构可对当前各类业务性能瓶颈进行分析评估,找出急需分布式事务数据库方案解决瓶颈问题的业务,按照一定的优先级顺序,逐轮进行流量分割处理,在缓解现有业务压力的同时,验证新系统的各项能力,层层递进。
三是按照业务不同的技术实现类型规划。
金融机构的业务纷繁复杂,各类业务对信息系统的技术要求并不相同。例如转账业务主要要求大并发的事务能力,批量计提结息业务要求大规模数据的并行处理能力,日志分析要求实时大规模数据的分析能力。所以金融机构可以按照不同业务对技术的要求安排改造顺序,从而逐步验证分布式事务数据库能力。
四是注重知识储备和传递。
分布式数据库在业界处于实践起步阶段,金融机构应用分布式数据库,需要在实施阶段首先进行深入的知识传递和过渡。
4、腾讯云分布式数据库的探索和实践
分布式数据库tdsql
tdsql是腾讯基于mysql/mariadb社区版本的基础之上打造的一款面向金融行业的分布式数据库。在内核层面,tdsql针对mysql社区版本和mariadb社区版本的内核做了深度的优化,通过对数据复制模块进行多线程的改造,使得tdsql具备了一主多从的数据强一致同步能力,极大地提升了数据安全性和整体能力的可扩展性。相对原生内核的半同步复制机制,tdsql强一致复制的性能也有极大提升,具备主备强一致切换与秒级恢复、自动化监控与运维等特点。
tdsql提供了noshard与shard两种使用模式:
noshard模式,就是单实例模式,不做自动的分库分表,在语法和功能上完全兼容于mysql,缺点是只支持垂直扩容,这会受限于单实例服务器的性能和容量上限,无法进行水平扩展。
shard模式即autosharding模式,通过tdsqlsqlengine模块,实现数据库的sharding和分布式事务功能,底层的数据打散在多个数据库实例上,对应用层还是统一的单库视图。shard模式可以实现容量和性能的水平扩展,通过两阶段xa支持分布式事务和各种关联操作。
tdsql对内支撑腾讯公司近90%的金融、交易、计费类业务,2014年tdsql首次尝试对外输出,成功应用于微众银行的核心系统,开始商业化探索。2019年tdsql成功应用到张家港农商行新核心系统,成为国内第一家投产于银行传统核心系统的分布式数据库,这是tdsql又一个里程碑式的发展。到目前为止,tdsql已全面应用于国有大型商业银行、股份制商业银行、城市商业银行和农村商业银行等各类型的银行。
分布式htap数据库tbase
tbase是腾讯云基于postgresql内核打造的一款分布式数据库,经过腾讯内部多年业务的打磨,在2017年更名为tbase后,正式对外推出。tbase以其功能强大、运行稳定、高性能高可靠性的特性得到用户的普遍认可,目前已在金融、政务、医疗、公安、消防、电信等行业的m6米乐安卓版下载的解决方案中大量应用。
tbase的核心能力如下:
一是具备htap能力(即事务和分析混合处理技术),tbase经过专门的设计很好地做到了htap,同时具备高效的olap能力和海量的oltp处理能力。tbase系统可以支持每分钟完成的事务量超过310万,系统的事务吞吐量会随着集群规模准线性提升。
二是支持企业级特性,业务无需关注数据库的事务特性,tbase数据库内核支持完整的分布式事务,保证事务的acid,同时具备良好分布式查询支持能力、高效的在线线性扩容能力。当前tbase能够兼容sql2003标准,同时还能够兼容常见的oracle语法,可以方便oracle深度用户的迁移。
三是数据安全能力强,tbase设计了全面的数据安全体系,一是三权分立,把数据库系统dba的角色分解为三个相互独立的角色,安全管理员,审计管理员,数据管理员,这个三个角色之间相互制约;二是强制安全规则,通过安全管理员制定的强制安全规则,可做到行级可见和列级可见,进而限制用户看到的数据,对不同的用户做到权限的行列混合控制。三是透明数据脱敏管理,tbase实现了业务的透明脱敏,业务只需要根据自己的业务规则结合tbase的脱敏语法,设计业务逻辑,tbase内部就可以做到数据的脱敏;四是审计能力,tbase设计了自己的审计系统,在内核中实现了审计的核心功能,做到在兼顾高精准的审计粒度的同时还能保证系统的性能。