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