《解析分布式数据库技术框架.docx》由会员分享,可在线阅读,更多相关《解析分布式数据库技术框架.docx(19页珍藏版)》请在第壹文秘上搜索。
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-关系型数据库一XX-二集中式数据二I7m三HIJ-I1.、O1.TP/-段SSaSB库、y三、分布式数据库的技术框架就分布式数据库的技术框架而言,可分为计算模块、存储模块和管理模块.各模块的技术框架介绍如下:(一)计算模块计算模块包括接口层、解析层和计算层.1、接口层接口层负责接口调用,是分布式数据库对外提供服务的统一接口,可提供包括SQ1.接口、JDBC/ODBC以及其他驱动等方式的接入.2 .解析层解析层包括解析器、优化器,负责解
7、析数据库收到的指令,(包括SQ1.语句和其他指令),同时对解析结果进行优化,生成执行计划,并将指令与计划自动分配到各计凭节点并行执行。在解析层中,我们需要关注产品对SQ1.的兼容性,以及对存储过程的支持情况3 .计苴雇计算层负责资源管理,确定计算框架,采用合适的通讯协议,通过分布式事务处理等技术确保数据正确性,借助井发控制、动态资源分配等技术提升分布式数据库在聂杂业务场景的计算效率,同时保证整体系疣的可靠性.各模块功能如下:-资源管理主要负责计算资源的管理,包括CPU、内存的调度,跟盘I/O管理、动态资源分配等。合理的资源管理设计,能最大程度发挥计箕资源的效率,提升分布式数据库在基杂业务场景的
8、计算效率.-计算框架分布式数据库通常采用MPP计算框架,实现并行计算的能力。MPP(MaSSiVelyParallelProcessing),大规模并行处理。MPP先对数据进行分块,交给不同节点储存.杳询时,各数据块利用所在节点的计算资源分别处理,然后汇总到leadernode进行合并.MPP有sharedeverything/Disk/Nothing三种类型.-负载管理包括资源管控、租户隔施、租户的S1.A,并发控制等等,合理的负载管理,能有效隔不同数据厮租户之间的相互影响,确保租户获得需要的S1.A.-通讯管理分布式数据库网络中,传输属通常可采用TCP/UDP协议,道路层可采用Ethern
9、etZRDMA协议.数据的高可用主要针对数据副本的管理,包括副本数据的巨制技术(如流且制、块复制和WA1.函构)和数据的一致性管理(强一致性和最终一致性).数据的三种豆制技术采用的实现方式不同:流直制.包括操作日志与SQ1.语句,通过重放操作,实现数据副本的欠制.块兔制.通过数据块的豆制,实现数据副本的豆制.常用的数据一致性技术有Paxes.Raft.WA1.重构,定期进行快照复制,并实时直制快照之后的操作日志,当需要数据恢豆时,可用过快照+日志的方式,将数据恢豆到最新状态.WA1.更构常用于数据的灾备.在实际技术实现时,计算层和存帏层都需要可靠性管理。其中,服务高可用在计算房和存储层上都要关
10、注,而数据的高可用主要在存储层上实现.(二)存储模块存储层属于存储模块,包括数据存储组织管理和日志组织管理。数据存储组织管理包括数据分片/分区策略、数据更新机制、数据存储结构、索引管理、数据物理结构等;日志组织管理包括日志类型和日志的归档方式等无论是数据还是日志,最终存储在物理介质上,存储介质可以是本地磁盘或外部存储.各模块功能如下:1、数据存储组织管理-数据分片/分区管理数据的切分有两个维度:水平分片和垂直分区.水平分片,按照一定的规则,将数据集划分成相互独立、正交的数据子集后,再将数据子集分布到不同的分片节点上。常见的数据分片策略有HaSh、RoUndrObin两种方式垂直分区,分片后的数
11、据,按照一定的规则进行切分,再根据分区策略,将数据分布在分片集群内的各存储单元上.常见的分区策略有一致性HaSh/一致性Hash,range和IiSt三种方式.- 数据更新机制数据在磁盘的组织和更新方式有两种方式:In-place,Append-onlyIn-place,数据更新时,直接对内存缓冲区中的数据迸行修改,然后刷新到磁盘上,完成数据的更新操作.Append-only,数据更新时,将新的数据直接追加到内存文件上,(而不对原来的数据进行修改),并定期保存在磁盘上.- 数据存慵结构存储上,数据可以以行存、列存、KV、文档、图和序列等方式组织存储,不同的数据存储组织适用于不同的业务类型。逻辑
12、上,数据可以以“库/表/记录”的方式组织,如Oracle、DB2等传统关系型数据库;也可以以1库/集合/文档”的方式组织,如MangoDB;或以“文件”的方式组织,如RocksDB等.常用的存储算法有B+树,1.SM和Hash.数据最终组织成页或1.OB块的方式,存储到文件系统中。- 索引管理索引的类型有文本、位图、倒排等,各种索引的特点如下:倒排索引,也叫反向索引(invertedindex).是实现单词-文档矩阵的一种具体存信形式,通过倒排索弓I,可以根据单词快速获取包含这个单词的文档列表.倒排索引主要由两个部分组成:单词词典和倒排文件”.单词词典常用的数据结构包括哈希加链表结构和树形结构
13、.文本索引支持对字符串内容的全文检索查询.文本索引可以包含字符串或字符串元素数组.一个集合有且只能有一个文本索引,但是该索引可以包含多个字段。位图索引是一种使用位图的特殊数据库索引.主要针对大量相同值的列而创建,索引块的一个索引行中存储键值和起止R。Wid,以及这些键值的位者编码,位者编码中的每一位表示键值对应的数据行的有无.2、日志组织管理- 日志类型常用的日志类型有red。、Und。等。redolog,电做日志,也是预写日志,记录了数据的创建和修改,提供前滚操作,防止故障时的数据丢失,用来保证事务安全.undolog,回滚日志,记录的是如何还原修改,提供回滚操作,同时提供MVCC1undo
14、log也会产生redolog,-日志归档方式日志可以有归档和未归档两种方式.未归档模式,不保留重做历史的日志操作模式,只能够用于保护例程失败,而不能够保护介质损坏.归档模式,指保留重做日志历史的日志操作模式。这种日志操作模式不仅可用于保护例程失败,还可以用于保沪介质损坏的情况.3、存储介质存储介质可以是本地磁盘,也可以是外部集中式存储或分布式存储.如采用本地磁盘,需利用豆制技术,如raft或Paxos协议,实现多副本保存,以保证数据的可用性,如采用外部存储,则数据的可用性由外部存储保证.(三)管理模块管理模块负责分布式数据库的运维和管理,提供数据库参数配置和运行监控接口,通用要求包括自动化部署
15、、扩缩容、可视化、多租户等;维护要求方面包括自动告警、版本升级、状态监控、性能监控、系统日志、系统配营、故障的隔离、自愈等,数据管理部分包括导入导出、数据同步、数据迁移、备份恢复等;容灾管理方面包括双活/多活、读写分离、主备三种模式.分布式数据库的技术框架如下图所示:四、各类分布式数据库的典型架构NoSQ1.数据库和NewSQ1.数据库均为分布式数据库,其中,NewSQ1.数据库有两大类:分JS分表的数据席访问中间件和原生分布式数据面.(一)N。SQ1.数据库N。SQ1.数据库通常有三大组件:协调节点、数据节点和配黄节点,各组件的功能如下:协调节点.在集群中可作为网关使用,提供客户端应用程序和数据节点集群之间的外部API接口,或简单的SQ1.支持,负责语法解析、优化,形成执行计划,下压给数据书点执行,负责数据分片和聚合,记录元数据到配置节点,或从配置节点读取元数据.配置节点.用于保存集群的配苣信息和数据分片的元数据信息等.数据节点。负责分片数据的实际存储和管理。数据可保存在本地磁盘或分布式存储,采用多副本方式保证数据的可靠性;如采用本地存储,副本间的数据一致性采用Paxos或raft,如采用分布式存描,由分布式存储保证副本间的数据一致。协调节点实现接口圉、解析层、计算层的相关能力,数据节点实现存储底的相关能力(具