《分布式数据库技术框架.docx》由会员分享,可在线阅读,更多相关《分布式数据库技术框架.docx(21页珍藏版)》请在优知文库上搜索。
1、04,一、刖百早期银行业务系统处理的主要是交易型数据,数据量较少,传统关系型数据库(如SQ1.Server、Orace1.DB2等)已足够应对.随着互联网金融业务的快速发展,业务系统需要处理的数据呈爆炸式增长,传统数据库因其扩展能力有限,已无法满足业务系统越来越高的数据处理能力要求.于是,新型的分布式数据库系统应运而生.本文拟先对数据库进行分类,r解各类数据库的特点,参考人行的分布式数据球技术架两规检,并结合业界主流分布式数据库的技术实现,试图榛理出通用技术框架,并根据各功能模块的主要技术特点,结合业务场景,提出分布式数据库系统在金融犊域的应用规划,供大家参考.二、数据库的分类为了更高效地了解
2、不同厂商分布式数据库的产品特点,我们需要对数据库产品进行分类.业界对数据库的分类尚未形成统一的标准,但都大同小异,本文数据库分类参考了451Group分析报告中的数据库行业全景图.数据库根据其数据模型,可分为关系型数据库(RDBMS)和非关系型数据由(NoSQ1.),其中,关系型数据库根据其技术特性,分为传统关系型数据库和NewSQ1.数据麻;根据业务负载特征,可分为O1.TP数据阵和O1.AP数据库.根据部署架构,可分为集中式数据库和分布式数据库.其中NoSQ1.数据库与NewSQ1.数据库均为分布式数据库.各类数据库的特性描述如下:1、关系型数据库与非关系型数据库关系型数据库(RDBMS)
3、即SQ1.数据库,支持SQ1.操作,具备ACID属性,用于处理存储结构化数据,包括传统关系型数据库与NewSQ1.数据库.非关系型数据库,通常为NoSQl数据库.NoSQ1.(NOtOnlySQ1.)即“不仅仅是SQ1.,提倡运用非关系型的、分布式的数据存储系统,通常以牺牲豆杂SQ1.、AClD事务支持和数据的一致性为代价,以此换取弹性扩展能力.常用的NoSQ1.数据库有基于键值(Key-Value)的,如IeveIDB.RocksDB.redis等;基于列存储的,如:BigtablexHBASE等;基于文档的,如:MangoDB;其他如基于图的Neo4j,基于时间序列数据的InfIuxDB等
4、。2.传统关系型数据库与NewSQ1.数据库传统关系型数据库与NeWSQ1.数据库均属于关系型数据库.早期使用的关系型数据库是传统关系型数据库,扩展能力有限,如商业软件Oracle、DB2,开源软件MySQ1.、PostgreSQ1.等.NewSQ1.数据库为应对爆炸式增长的数据需求而生.采用分布式技术,支持SQ1.麋作,满足AelD属性,同时具备良好的扩展能力,如CockroachDB.GoogleSPanner/F1、TiDB.OCeanBaSe等。3、O1.TP数据库与O1.AP数据库O1.TP(On-lineTransactionProcessing联机事务处理)数据库,适用于事务管理
5、型系统,该类系统处理的是高并发且数据量级不大的交易,如INSERT,UPDATE.DE1.ETE等.O1.TP是传统关系型数据库的主要应用.O1.AP(On-lineAnalyticalProcessing联机分析处理)数据库,适用于直询频率较低,但通常会涉及到非常夏杂的聚合计算的系统.该类系统需要进行夏杂的分析操作,侧电决策支持,并且提供亘观易懂的查询结果。如数据仓库,风睑预警等.4、集中式数据库与分布式数据库集中式数据库将数据在物理空间上集中存储和处理,是一种较为经典、传统的架构模式;分布式数据库是物理上分散而逐辑上集中的数据库系统,利用分布式事务处理、数据自动分片、数据多副本存储等技术,
6、将分散在计或机网络的多个逻辑相关节点连接起来,共同对外提供服务.NeWSQl.数据库与NOSQl数据库采用分布式部署,均为分布式数据库。5、数据库分类示意图:Z-关系型数据库、Z一1厂集中式麻库一、八|分/Fh、O1.TP/非库、)A三、分布式数据库的技术框架就分布式数据库的技术框架而言,可分为计算模块、存储模块和管理模块.各模块的技术框架介绍如下:(一)计算模块计算模块包括接口层、解析层和计凭层.1、接口层接口层负责接口调用,是分布式数据库对外提供服务的统一接口,可提供包括SQ1.接口、JDBC/ODBe以及其他驱动等方式的接入.2、解析层解析层包括解析器、优化器,负责解析数据库收到的指令,
7、(包括SQ1.语句和其他指令),同时对解析结果进行优化,生成执行计划,并将指令与计划自动分配到各计算节点并行执行.在解析层中,我们需要关注产品对SQ1.的兼容性,以及对存储过程的支持情况3、计算层计第层负责资源管理,确定计算框架,采用合适的通讯协议,通过分布式事务处理等技术确保数据正确性,借助并发控制、动态资源分配等技术提升分布式数据库在豆杂业务场景的计算效率,同时保证整体系统的可靠性.各模块功能如下:-资源管理主要负责计凭资源的管理,包括CPU、内存的调度,跟盘I/O管理、动态资源分配等.合理的资源管理设计,能最大程度发挥计箕资源的效率,提升分布式数据库在基杂业务场景的计算效率.-计算框架分
8、布式数据库通常采用MPP计算框架,实现并行计算的能力.MPP(MassivelyParallelProcessing),大规模并行处理。MPP先对数据进行分块,交给不同节点储存.直询时,各数据块利用所在节点的计算资源分别处理,然后汇总到leadernode进行合并。MPP有sharedeverything/Disk/Nothing三种类型。- 负载管理包括资源管控、租户隔需、租户的S1.A.并发控制等等,合理的负载管理,能有效隔不同数据库租户之间的相互影响,确保租户获得需要的S1.A.- 通讯管理分布式数据库网络中,传输展通常可采用TCP/UDP协议,道路层可采用Ethernet/RDMA协议
9、.RDMA(RemoteDirectMemoryAccess远程直接内存访问),是为解决网络传输中服务器端数据处理的延迟而产生的.其特点是:数据可通过网络与远程服务器间直接进行数据传临,不需要内核参与,从而减少了数据的额外移动和豆制,有效提高了数据库性能.RDMA有三种实现方式:Infiniband、RoCE.iWARP- 分布式事务管理分布式数据库同需采用二阶段提交(2PC)来保证分布式事务的AQD,属性。为了实现并发访问控制,分布式数据库需支持分布式事务的隔离性,以解决并发事务执行过程中存在的脏读、不可重复读、幻读等问题。支持的隔渤级别包括:已提交读、可更豆读、串行化;分布式数据库需具备锁
10、的管控能力,包括锁的类型、锁的级别、锁的互斥、死锁处理等.在实际技术实现时,计算层和存储层都需要实现分布式事务处理.- 可靠性管理可靠性管理包括服务的高可用和数据的高可用。服务商可用主要从部署架构方面考虑,如采用的是集群、还是主备部署,并从机房、机柜、供电、布线展面,保证基础设施的高可用.数据的高可用主要针对数据副本的管理,包括副本数据的复制技术(如流夏制、块豆制和WA1.更构)和数据的一致性管理(强一致性和最终一致性)数据的三种豆制技术采用的实现方式不同:流豆制.包括操作日志与SQ1.语句,通过重放操作,实现数据副本的豆制.块豆制.通过数据块的复制,实现数据副本的复制.常用的数据一致性技术有
11、Paxos、Raft.WA1.重构,定期进行快照算制,并实时算制快照之后的操作日志,当需要数据恢豆时,可用过快照+日志的方式,将数据恢豆到最新状态.WA1.重构常用于数据的灾密.在实际技术实现时,计算层和存储层都需要可靠性管理。其中,服务高可用在计算展和存储蜃上都要关注,而数据的高可用主要在存储展上实现.(二)存储模块存储层属于存储模块,包括数据存储组织管理和日志组织管理。数据存储组织管理包括数据分片/分区策略、数据更新机制、数据存储结构、索引管理、数据物理结构等;日志组织管理包括日志类型和日志的归档方式等无论是数据还是日志,最终存储在物理介质上,存储介质可以是本地磁盘或外部存储.各模块功能如
12、下:1.数据存储组织管理- 数据分片/分区管理数据的切分有两个维度:水平分片和垂直分区.水平分片,按照一定的规则,将数据集划分成相互独立、正交的数据子集后,再将数据子集分布到不同的分片节点上。常见的数据分片策略有HaSRoundrobin两种方式垂直分区,分片后的数据,按照一定的规则进行切分,再根据分区策略,将数据分布在分片集群内的各存储单元上.常见的分区策略有一致性HaSh/一致性Hash、range和list三种方式。- 数据更新机制数据在磁盘的组织和更新方式有两种方式:In-place.Append-onlyIn-place,数据更新时,直接对内存缓冲区中的数据进行修改,然后刷新到磁盘上
13、,完成数据的更新操作.Append-only,数据更新时,将新的数据直接追加到内存文件上,(而不对原来的数据进行修改),并定期保存在磁盘上.- 数据存储结构存储上,数据可以以行存、列存、KV、文档、图和序列等方式组织存慵,不同的数据存储组织适用于不同的业务类型.逻辑上,数据可以以库/表/记录的方式组织,如Oracle、DB2等传统关系型数据而;也可以以麻/集合/文档”的方式组织,如MangoDB;或以“文件的方式组织,如RocksDB等。启用的存储比法有B+树,1.SM和Hash.数据最终组织成页或1.OB块的方式,存储到文件系统中.- 索引管理索引的类型有文本、位图、倒排等,各种索引的特点如
14、下:倒排索引,也叫反向索引(invertedindex).是实现单词-文档矩阵的一种具体存储形式,通过倒徘索引,可以根据单词快速获取包含这个单词的文档列表.倒排索引主要由两个部分组成:单词词典和“倒排文件。单词词典常用的数据结构包括哈希加链表结构和树形结构.文本索引支持对字符串内容的全文检索查询.文本索引可以包含字符串或字符串元素数组.一个集合有且只能有一个文本索引,但是该索引可以包含多个字段.位图索引是一种使用位图的特殊数据库索引.主要针对大量相同值的列而创建,索引块的一个索引行中存储梃值和起止R。Wid,以及这些犍值的位笆编码,位笆编码中的每一位表示键值对应的数据行的有无.2.日志组织管理
15、-日志类型常用的日志类型有red。、undo等。redolog,至做日志,也是预写日志,记录了数据的创建和修改,提供前滚操作,防止故障时的数据丢失,用来保证事务安全.undolog,回滚日志,记录的是如何还原修改,提供回滚操作,同时提供MVCC1undolog也会产生redolog,-日志归档方式日志可以有归档和未归档两种方式.未归档模式,不保留重做历史的日志操作模式,只能够用于保护例程失败,而不能够保护介质损坏.归档模式,指保留重做日志历史的日志操作慢式。这种日志操作模式不仅可用于保护例程失败,还可以用于保护介质损坏的情况.3、存储介质存储介质可以是本地磁盘,也可以是外部集中式存惆或分布式存储.如采用本地磁盘,需利用豆制技术,如raft或Paxos协议,实现多副本保存,以保证数据的可用性.如采用外部存储,则数据的可用性由外部存储保证.(三)管理模块管理模块负责分布式数据库的运维和管理,提供数据库参数配置和运行监控接口.通用要求包括自动化部署、扩缩容、可视化、多租户等;维护要求方面包括自动告警、版本升级、状态监控、性能监控、系统日志、系统配百、故障的隔离、自感等,数据管理部分包括导入导出、数据同步、数据迁移、备份恢夏等;容灾管理方面包括双活/多活、读写分离、主备三种模式.分布式数据庵的技术框架如下图所示:计算模块