北京治疗白癜风好方法 https://m-mip.39.net/fk/mipso_5619395.html随着互联网金融业务的快速发展,银行需要处理的数据呈爆炸式增长,传统的关系型数据库已无法满足新的业务需求,于是,近年各银行纷纷开始了分布式数据库的研究与试点。本文拟对分布式数据库的技术实现原理进行分析,试图梳理出分布式数据库的技术框架和功能模块,以及各功能模块采用的关键技术和技术特点,以帮助从业人员,在进行分布式数据库选型时,能更清晰地了解各类数据库产品的特点,并能够根据业务场景,选择合适的数据库。关系型数据库、分布式数据库、NoSQL、NewSQL、OLTP、OLAP
范永清,系统架构师,现就职于厦门银行信息技术部,目前主要负责厦门银行技术架构设计。
一、前言
早期银行业务系统处理的主要是交易型数据,数据量较少,传统关系型数据库(如SQLServer、Oracel、DB等)已足够应对。随着互联网金融业务的快速发展,业务系统需要处理的数据呈爆炸式增长,传统数据库因其扩展能力有限,已无法满足业务系统越来越高的数据处理能力要求。于是,新型的分布式数据库系统应运而生。
本文拟先对数据库进行分类,了解各类数据库的特点,参考人行的分布式数据库技术架构规范,并结合业界主流分布式数据库的技术实现,试图梳理出通用技术框架,并根据各功能模块的主要技术特点,结合业务场景,提出分布式数据库系统在金融领域的应用规划,供大家参考。
二、数据库的分类
为了更高效地了解不同厂商分布式数据库的产品特点,我们需要对数据库产品进行分类。业界对数据库的分类尚未形成统一的标准,但都大同小异,本文数据库分类参考了45Group分析报告中的《数据库行业全景图》。
数据库根据其数据模型,可分为关系型数据库(RDBMS)和非关系型数据库(NoSQL)。其中,关系型数据库根据其技术特性,分为传统关系型数据库和NewSQL数据库;根据业务负载特征,可分为OLTP数据库和OLAP数据库。
根据部署架构,可分为集中式数据库和分布式数据库。其中NoSQL数据库与NewSQL数据库均为分布式数据库。
各类数据库的特性描述如下:
、关系型数据库与非关系型数据库
关系型数据库(RDBMS)即SQL数据库,支持SQL操作,具备ACID属性,用于处理存储结构化数据,包括传统关系型数据库与NewSQL数据库。
非关系型数据库,通常为NoSQL数据库。NoSQL(NotOnlySQL)即“不仅仅是SQL”,提倡运用非关系型的、分布式的数据存储系统,通常以牺牲复杂SQL、ACID事务支持和数据的一致性为代价,以此换取弹性扩展能力。常用的NoSQL数据库有基于键值(Key-Value)的,如levelDB、RocksDB、redis等;基于列存储的,如:Bigtable、HBASE等;基于文档的,如:MangoDB;其他如基于图的Neo4j,基于时间序列数据的InfluxDB等。
、传统关系型数据库与NewSQL数据库
传统关系型数据库与NewSQL数据库均属于关系型数据库。早期使用的关系型数据库是传统关系型数据库,扩展能力有限,如商业软件Oracle、DB,开源软件MySQL、PostgreSQL等。
NewSQL数据库为应对爆炸式增长的数据需求而生。采用分布式技术,支持SQL操作,满足ACID属性,同时具备良好的扩展能力,如CockroachDB、GoogleSpanner/F、TiDB、OceanBase等。
3、OLTP数据库与OLAP数据库
OLTP(On-lineTransactionProcessing联机事务处理)数据库,适用于事务管理型系统,该类系统处理的是高并发且数据量级不大的交易,如INSERT,UPDATE,DELETE等。OLTP是传统关系型数据库的主要应用。
OLAP(On-lineAnalyticalProcessing联机分析处理)数据库,适用于查询频率较低,但通常会涉及到非常复杂的聚合计算的系统。该类系统需要进行复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。如数据仓库,风险预警等。
4、集中式数据库与分布式数据库
集中式数据库将数据在物理空间上集中存储和处理,是一种较为经典、传统的架构模式;
分布式数据库是物理上分散而逻辑上集中的数据库系统,利用分布式事务处理、数据自动分片、数据多副本存储等技术,将分散在计算机网络的多个逻辑相关节点连接起来,共同对外提供服务。
NewSQL数据库与NoSQL数据库采用分布式部署,均为分布式数据库。
5、数据库分类示意图:三、分布式数据库的技术框架
就分布式数据库的技术框架而言,可分为计算模块、存储模块和管理模块。各模块的技术框架介绍如下:
(一)计算模块
计算模块包括接口层、解析层和计算层。
、接口层
接口层负责接口调用,是分布式数据库对外提供服务的统一接口,可提供包括SQL接口、JDBC/ODBC以及其他驱动等方式的接入。
、解析层
解析层包括解析器、优化器,负责解析数据库收到的指令,(包括SQL语句和其他指令),同时对解析结果进行优化,生成执行计划,并将指令与计划自动分配到各计算节点并行执行。
在解析层中,我们需要