版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库分类方 %!%!"$!!:on-premises!+....................... 数据库竞争力维度及其评测指 NoSQL性能评测基准 关系型数据 OLTP:交易型数据 单机OLTP数据 集中式OLTP数据 分布式OLTP数据 云原生OLTP数据 如何鉴别OLTP数据 OLAP:分析型数据 单机OLAP数据 集中OLAP数据 分布式OLAP数据 云原生OLAP数据 如何鉴别OLAP数据 HTAP:混合型关系数据 单机HTAP数据 集中式HTAP数据 分布式HTAP数据 云原生HTAP数据 如何鉴别HTAP数据 非关系型数据 数据库的比较与选 总结与展 行业皇冠上的明珠”从数据库行业六十年的发展历程来看,数据库技术出现了百花争鸣、百花齐放的大繁荣大发展。上世纪60年代数据库概念被提出。七十年代关系数据库逐步取代网状和层次数据库,成为主宰。八十年代随着SQL语言的提出,交易型(OTP)数据库得到成熟发展。九十年代分析型(OLAP)数据库可以实现商业分析的增值服务,得到企业公司的广泛关注。本世纪初,随着大数据和智能时代的到来,用户量和数据量越来越大,NoSQL数据库由于其良好扩展性得到快速发展。近十年,随着云技术的发展和普及,云原生数据库通过计算存储分离架构实现更高效的弹性,因此得到快速发展。近年来随着应用需求越来越多,对数据库的需求呈现多元化趋势。国产数据库不论从学术界到工业界也都得到了快速发展。数据库研发人员从不同角度出发,设计了各式各样的数据库,为用户提供多种选择。然而,面对市场上繁多复杂的数据库产品,如何根据自身需求,合理选择数据库,成为新的挑战。本文对当前使用广泛的主流数据库,和新颖具有代表性的数据库,进行了归纳整理。首先,第一章介绍了对数据库分类的依据和方法。第二章介绍了对数据库竞争力的评价维度。第三章和第四章细致阐述了关系数据库和非关系数据库的不同种类。最后,总结了选择数据库的两种思路以供参考。定1(数据库系统)数据库系统是按照特定数据结构组织,存储和管理数据的基础软对数据模型:关系型和非关系型;非关系型又包括:键值型(KV)(widecolumn)、时序、空间%!!$:.&+%!(on-按数据模型分类,数据库分为关系型数据库(SQL)和非关系型数据库(NoSQL)。关系型数据库以关系代数为基础,按照二维数据表格为方式,对数据表格之间的关系进行抽象和建模。按业务负载特征进行分类,关系型数据库又可分为交易型数据库(OTP)、分析型数据库(OLAP)和混合负载数据库(HAP)。交易型数据库满足处理在线的实时交易事务场景,而分析型数据库满足分析业务场景。混合负载OLTP(OnlineTransactionProcessing):OLTP是能够提供实OLAP(OnlineAnalyticalProcessing):OLAP是指支持对大规模数据进行较为复杂HTAP(HybridTransactional/AnalyticalProcessing):HTAP事务处理和复杂数据分析的关系型数据库。广义的HTAP指的是同时支持OLTP和OLAP询的数据库,而狭义的HTAP指的是同时支持行存列存以支持OLTP和OLAP键值数据库(Key-Valuedatabase):对键值集合进行存储、检索和管理的数据文档数据库(Documentdatabase):面向文档进行存(Widecolumndatabase):按列存图数据库(Graphdatabase):使用节点、边和属性来表示和存储数据,进行基于图结时序数据库(Time-seriesdatabase):为包含个体、时间、状态信息的实时流数据进行存储、检索和管理数据库,适合于物联网(IOT)、性能监控服务(APM,ApplicationPerformanceManagement)空间数据库(Spatialdatabase):针对二维或多维的空间数据进行存按数据库系统架构角度分类,数据库又可以分为集中式单机数据库(Single)、集中式数据库(shareeerything)、分布式数据库(sharenothing)。集中式数据库是一种经典、传统的数据库结构,被广泛应用于数据管理。其数据被集中存储在存储设备中,安全且易于处理。但是,集中式数据库信息化投入成本高、性能及容量无法弹性扩展的资源瓶颈等明显的劣势,使以分布式为主要特征的数据库系统的研究与开发受到人们的注意。分布式数据库是分布在计算机网络上,逻辑上相互关联的数据库。分布式数据库可以分散在多个位置,不同位置的计算机中存1:vsshareshare有数据库管理系统的一份完过网络互相连接,共同组成一个逻辑软件系统的协调下形成一个对外提供服单机:适用于数据量少、对服务可靠性要求不高的场景。一般都是sharedeverthing架集中式(withoutdatasharding):多台机器联合管理数据,一般不对数据进分布式(withdatasharding):将数据从物理上分割,并分配给多台服务器(或多个实分布式中间件:基于单机数据库、分库分表中间件划分数据,中间件实现数据的划分、查询下发、结果收集,进而实现数据库的可扩展性。适合数据能够完美分片到各个节点,节点间没有数据交互的场景。分布式数据库:对数据进行分片(sharding),通过!!!!$""!:on-On-premises#".&!#5!"-$!0%"(.k,%$!%5-以虚拟化、分布式化和运维自动化为基本原则的云计算技术,采用通用硬件平台,提供资源快速发放、快速回收复用的弹性能力。基础架构具备“跨AZ、跨域”分布式高可用和容灾能力。分布式数据库在架构层面天然具有与云平台的高度亲和力,基于底层虚拟化技术,可以实现分布式数据库弹性伸缩,副本冗余高可用,以及跨AZ、跨“地域(region)”的容灾能力。借助云平台成熟统一的自动化运维工具,可以大幅降低数据库运维管理成本,利用云平台运维监控数据实现机器学习精准训练,未来将实现基于机器学习的分布式数据库自调优、自诊断、自运维的能力。云化转型是行业发展趋势。近年来云计算的迅速发展,使它成功地渗透到了各行各业,并且在全球数字化转型的时代,成为行业转型的核心推动力。以云计算技术提升效率、降低成本、创新业务模式以及灵活可变地利用IT架构。但是,很多行业对于信息安全有很高的要求,对云环境的规划、建设和运维的专业性有着更高的要求。on-内存数据库:将数据存储在内存中管理的数据库,能够提供超快的响应速度。但内存AI与数据库:一方面通过AI技术实现数据库的自优化、自运DB4AI:支持内置AI算法的数据库,在数据管理、查询处理、查询优化等各个角度AI4DB:利用AI算法优化和管理数据库,使得数据库更加智能,更好适应不同场景。CPU/GPU数据库:将数据处理操作划分在CPU和GPU上混合运算的数据库[22],一方面通过CPU来处理传统的简单查询和更新数据操作,另外一方面通过GPU来支持复杂分析和AI算法的加速。多模数据库:能够支持处理多种数据模式混合的数据库(例如关系、KV随着数据库应用市场蓬勃发展,需求和产品多样化,用户选择合适的数据库变得越来越难。如何能够客观全面评价数据库产品,成为研发和使用数据库的重要内容之一。本文从以下六个维度出发,分别介绍相应评测指标,用来比较数据库拥有的竞争力。高性能:主要评价数据库的性能,例如QPS(querypersecond)、TPS(transactionsper高可用:主要评价数据库的可用性和可靠性,例如RecoveryPointObjective(RPO)、RecoveryTimeObjective(RTO)。智能化:主要评价数据库的易用性、自动化和智能化,包括数据库的自动升级、备份、恢复,以及数据库的自调优(参数自调优、索引/视图自推荐、慢SQL诊断等)、自监控、自恢复等。事务性能管理委员会(TPC)评测OLTPTPC-ATPC-CTPC-E评测OLAPTPC-H针对TPC-DS针对衡量性能的评测指标,也具有多样性,包括总执行时间、吞吐量、能耗比等等[18]。其中,最具代表性的tpmC,是指运行类似TPC-C负载时,每分钟可以处理的查询数量;TPC-E的评测指标为tpsE,以每秒事务数来衡量;TPC-H报告的性能指标QphH@Size,代表综合查Sysbench是一个开源的、模块化的、跨平台的多线程性能压力测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。Sysbench模拟的表结构较简单,不Memest基准可以用来评测内存数据库。该基准以银行间转账应用为背景,使用了一个包括6张表的数据库模式。同时使用了5个针对内存数据库的度量标准,包括响应时间、CPU适用率、高速缓存缺失率、数据压缩率和最小内存空间。工作负载可分为两类:第一类负载主要包括读操作,第二类负载主要包括插入和删除等操作。Yahoo!CloudServingBenchmark(YCSB)灾难恢复(Disasterrecovery)涉及一整套策略、修复工具和程序,旨在发生自然或人为灾害容灾容错和数据恢复能力越强,其可用过RPO和RTO共同体现的服务连续性来评价数据库的可用性:RPO:RecoveryPointObjective(RPO),是灾难(或中断)可能导致的数据(事务)丢失RTO:RecoveryTimeObjective(RTO),是灾难(或中断)续时间和服务级别,主要指的是所能容忍的业务停止服务的最长时间,也就是从灾难发生到业务系统恢复服务功能所需要的最短时间周期。TO不宜过长,以避免与业务连续性中断相关的不可接受的后果。SLA:ServiceLevelAgreements(SLA)指的是与用户协商好的可容忍数据修复时长以“几个9”数据库需要选择合适的RPO和RTO和一系列方案,以保证用户提出的SLA般可用RPO和RTO来衡量主备切换时间多地多中心容灾:将一主多备部署到多地多中心,从而可以解决地区级故障问障多地多中心的RPO和TO是一个挑战。特别是多地的网络时延较大,保证RPO时性能较差,而保证性能时,则RPO较大。高可靠定义为一个服务连续无故障运行的时间,无故障运行的时间越长MTTF(MeanTimeToFailure,平均无故障时间),指系统无故障运行的平均时间MTTR(MeanTimeToRepair,平均修复时间),指系统从发生故障到维修结束之间MTBF(MeanTimeBetweenFailure,平均失效间隔),指系统两次故障发生时间之间在大数据时代和移动互联网时代,用户非常关注数据库系统的扩展性,即在系统中增加计算节点,能带来多少收益。这里从强扩展(strongscaling)和弱扩展(eakscaling)两个角度,采用加速比和扩展效率两个度量来衡量系统的扩展性。YCSB分别从这两个角度,提供了云服务系统的扩展性评测方案。加速比(speedup):强扩展是指在任务总量不变的情况下,当机器数量增长时,完成任务所需时间1的延时方可完到n时,仅需Tn的时长即可完定义加速比Sn=T1随着机器数量增长而线性增加(斜率为1)Amdahl’slaw,在机器数量增长到一定程度扩展比:扩展比是指在任务量与机器数量同步成比例增长时(或任务量源源不断无限产生考察单位时间内平均每台机器处理的数据量/事务/分析的变化情况。仅使用一台机器提供服务时,单位时间内的吞吐量用Q1表示。当系统中的机器数量扩展到n时,Qn表示单位时间内平均每台机器的吞吐量。基于此,可以定义扩展效率En=Qn。理想情况下的扩展效率值为1,即每台机器处理速度保持不变。但是由于节点间的通信代价等原因,使得数据库系统的扩展效率一般始终小于1。因此,若数据库经过优化后,其扩展效率越趋向于1对于具有混合任务的数据库,例如HAP,需要综合多方面的评测结果,得到最终评价。HAP数据库的评测,可以分为OLAP和OTP两部分,但是单独评价显然有失偏颇。所以需要将两类负载进行混合,生成新的评测基准,进行评测。现在还缺少测试混合负载的基准,急需给出相应的基准来进行评测。例如可以混合TPC-C和TPC-H来测试HAP能力,但是它还不能深刻评测HAP的能力。对于多模数据库,可以处理多种数据类型,则需要综合不同数据类型对信息安全性指标,包括身份鉴别、访问控制、安全审(1评估是否对登录用户进行身份标识和鉴别,核查标识唯一性、鉴别信息复杂性、更换周期性要求;(2)评估是否对登录失败及登录超时情况进行处理;(3)SSL/SSH等安全的远程连接方式以保证重要信息的加密传输;(4)是否支持双因素身份认证。访问(1)数据库的账户和权限分配策略;(2)检查数据库系统是否可设置安全策略,持用户和/或用户组可以根据身份规定对库表的访问控制策略3访问控制的粒度应达,安全审安全审计评估数据库的日志记录及审计功能,审计应覆盖到每个用户并对户行为和重要安全事件进行审计审计记录可备份审计进,但遗憾的是,据我们所知,没有公认的可以专门分析数据库安EALEAL1EAL2EAL3EAL4TPCx-AI是端到端的AI基准,用于衡量端到端机器学习平台或数据科学平台的性能。基解决方案的行为。括数据管理、预处理、训练、评分以及服务阶段。TPCx-AI还试图解决关键挑战,如扩展到更数据集:TPCx-AI模拟真实数据场景,生成最大10TBOLTP事务(ransaction)是操作数据库中数据的操作序列,要求保证CID,即原子性(tomiciy)一致性(Consistency)、隔离性(Isolation)、持久性(Durabiliy)。OTP(OnlineransactionPro-cessing)数据库是能够提供实时在线处理事务时保证强一致性(CID)的关系型数据库,也称交易型数据库。为了满足事务处理的CID四个性质,需要用到事务处理技术,主要包括并发控制技术和数据库恢复技术。其中,并发控制机制用来控制多个事务的同时运行,避免它们之间的互相干扰,保证每个事务都产生正确的结果。数据库恢复机制用来进行系统失败后的恢复处理,确保数据库能够恢复到正确状态[1]。为了便于添加或者修改数据集中某一条记录,提供OTP服务的数据库通常采用按行存储的方式。在面对海量数据时,为了提高I/O效率,建立相应索引,便于读取。然而,在每条记录包含内容过多的情景中,按行访问的方式,会导致大量不必要数据的读入。如何减小数据库的相应延迟,增加吞吐量,是核心目标之一。TPC-C:TPC组织提出并维护模拟仓库订单管理的应用。TPC-C包含9张表,各表所含的记录条数具有比例关系。设计了5种事务,比较全面的涵盖了仓库订单管理业务。采用tpmC量,描述每分钟处理的事务数;鉴于能耗越来越受到重视,也引入瓦特/tmpC(即每个tpm的能量消耗)。Sysbench:多线程基准测试工具,常用于数据库基准测试,对数千并发线程按秒测试CPU内存占用、文件I/O、延迟多节点写:YCSB是由雅虎研究院设计,频繁更新是它构造5类负载之一(其余四个为频繁[20]。非索引列查询:TPC-E基准比TPC-C的数据库模式更为复杂,负载中包括了非主键访问等等。TPC-E比以前的OLTP基准(如TPC-C)更复杂,因为它具有多样化的事务类型、更复TPC-E12种不同类型和复杂性的并发交易,它们要么在线执行,要么由价格或时间33个表组成,具有广泛的列、基数和缩放属性。虽然基准描述了股票经纪公司的活动,但TPC-E并不限于任何特定业务部门的活动,而单机OLTP支持单机、一主多备、一写多读的数据库业界代表包括MySQL、PostgreSQL、openGaussMogDB等。传统的Oracle、DB2、SQLServer2:一写多读OLTPSQLSQLSQLSQL集中式OLTP单机数据库、一主多备数据库、一写多读数据库的写扩展能力受到了限制,当写请求量较大时单节点写不能满足需求,因此集中式的多写数据库可以解决写扩展问题。多写数据库通过“双机(actie-actie)”配置将数据库扩展到一组服务器上,以便交付高水平的可用性和可伸缩性。多写数据库业界代表包括Oracle、IBMPureScale分布式OLTP然而很多数据量较大和用户并发较高的场景,比如双11的订单服务,多用户并发的事务会同时具有读和写的需求。为了能够完全扩展读写服务,支持大规模的OTP应用,分布式中间件和分布式数据库应用而生。目前有两种方案来解决数据库的可扩展问题,一种是分库分表+中间件,它将数据划分到不同的节点,然后再通过中间件聚合。但是这种方案复杂度高、偏定制化、可复制性差,不能保证数据实时一致性要求,而且支持复杂的跨节点查询处理速度慢;另外一种是分布式数据库。分布式数据库通过数据分片的方式,每个节点来管理一个数据分片,可以通过增加分片来支撑数据的增长,不仅可以提升数据库的可扩展性,而且能够为客户带来更多业务价值。分布式数据库的优点是将复杂的分布式事务处理(GTM–GlobalransactionManager)和分布式查询优化(DistributedOptimizer)管理机制,不存在中心化的事务管理模块,实现了真正的分布式事务。分布式数据库在数据可靠性、副本同步、查询性能、数据一致性、服务可用性等方面都优于分布式中间件。分布式中间件:在多个传统单点数据库系统上的中间层解决方案,通过将数据分拆到不同的中间件数据库业界代表包括DRDS、ShardingSphere、MyCAT对数据库SQL引擎、执行引擎、存储引擎原生技术开分布式数据库业界代表包括Spanner、GaussDB(openGauss)、OceanBase、PolarDB-XTiDB、CockroachDB、Yugabyte、TDSQL云原生OLTP云数据库服务一般将PostgreSQL、MySQL、SQLServer等数据库部署到云上部署(容力,前者主要解决云弹性问题,后者解决磁盘和网络IO问对应优势包括如下云原生数据库业界代表包括Aurora、Taurus、PolarDB如何鉴别OLTP鉴别分布式中间件和分布式数据库主要通过OLAP随着存储的数据量越来越大,用户可以通过分析大规模历史数据,进OLAP(OnlineAnalyticalProcessing)是指一类支持对大规模数据进行较OLAP分析查询面向某一主题的数据,尝试从集成数据中发掘新知识,所以可能执行分析查询前,用户自身对结果的情况也是未知的。列存储(Column-oriented),多维存储。优势:只需要读取相关数据。劣势:对LLVM编译优化技术,通过静态编译AOT和动态编译JIT通过sharescanTPC-H:TPC-H基准模拟商务采购应用,其数据库模式包含8张表,分别代表参与商业领域中采购和订购的对象或行为。性能评测基准定义了22个复杂查询语句和2个更新数据语句。数据库的规模由标度因子决定,从1GB到100TB不等。TPC-H基准以每小时内执行的查询数作为度量标准[18]。TPC-DS:TPC-DS与TPC-H相比,在四方面做了改进。首先,数据库模式使用共享的雪花模式,包含24张表,平均每张表含有18载包含99个随机可替换的SQL查询,具有更强的代表性。最后,还包括数据抽取、转换和加载功能。TPC-DS基准定义了3个主要度量和4个辅1.每小时内执行完毕的查询树,已描述查询吞吐率;2.每小时内执行的查询数的性价比;3.[18]。JOB:主要用于连接顺序的选择,对数据库系统的查询效率有重要影响。在评价数据库接顺序的优化效率时,可以使用JOB(JoinOrderBenchmark)进单机OLAP单机的计算资源受限,处理庞大数据分析十分困难,对复杂分析更无法应对此OLAP集中OLAP集中数据库一般采用sharestorage架构,而OLAP一般是IO和计算密集型操作,这适合于OLAP操作,因此OLAP分布式OLAP1:OLTP、OLAP、分布式OLAP数据库业界代表包括TeraData、Greenplum、GaussDB(DWS)、AnalyticDBBigquery、Clickhouse此外,还有大数据系统支持OLAP功能,例如HIVE、SparkSQl等,它据的离线分析。而OLAP云原生OLAP云原生OLAP数据库也需要解决计算存储分离、元数据解耦、计算下推问题,从而可以解决扩容问题,提升了扩容速度。云服务层存储管理计算集群、查询、事务以及所有元数据(如数据库目录、访问控制信息等)的服务集合底层存储中。云原生OLAP业界代表包括Redshift、SnowFlake和BigQuery3:云原生OLAPBIappend-Server如何鉴别OLAP由于分析型数据库需要较大算力来支持数据分析,因此分析型数据库主要采用分布式架构,利用多节点来提升计算性能。HTAP:HAP能同时提供OTP和OLAP的混合关系型数据库,我们称之为HAP(Hybridtransac-tionandanalysisprocessing)。广义的HAP数据库,能够在关系数据模型上进行OTP时具有强一致性保证,并且融合了分布式能力从而同时具有高扩展性[5]。狭义的HAP数据库指的是采用行列混存或者行列转化技术来同时支持事务能力和分析功能。以Oracle为例,最初的设计面向OTP服务,而随着OLAP日趋发展,最近发布的Oracle版本开始同时支持OLAP服务,所以成为了广义上的HAP数据库(如图1所示)。而是否属于狭义HAP的概念,需要根据其支持的存储技术、行列转换、查询处理技术等综合决定。可以支持OLTP服务,保证事务处理的强一致性ACID具有分布式数据管理能力,包括采用备份机制保证容错性,采用Raft算法或Pixos目前支持HTAP行存为主,内存列存为辅:以行存为主支持数据的增删改查,以列存为辅(内存中行转列)来支持复杂分析。其主要难点在于选择哪些数据转为列存、如何用行存和列存询。代表系统为Oracle。主机行存,备机内存列存:主机采用行存,备机通过log复制转为内存列存力。代表系统为MySQLHeatWave多副本行列共存。通过多副本进行存储,主采用行存,副本采用列存。代表性系统为TiDB实现HTAP的技术主要包括:行列转换技术、行列共存的查询优化技术、行列共存CH-Benchmark:CH-Benchmark融合了TPC-C和TPC-H两种基准。它选取典型OLAP+OLTP单机HTAP单机HAP数据库一般是通过一台主机同时支持行存和列存,内存中进行行转列,从而支持HAP。而一写多读数据库则是通过日志将主机数据传递给备机,备机将其转为列存,从而支持HAP。目前的HAP的业界代表是MySQLHeate。其基于原有的MySQL数据库提供负责事务处理,紧密集成的Heae云服务以基于内存的分布式列存引擎用于加速复杂查询。此外,分析型查询由系统查询引擎基于代价估计后决定是否下推到内存列引擎中执行,常被访问的热数据将会留在内存中,不常使用的冷数据将会被压缩后持久化到外存中。MySQL的事务更新定期(如200ms的间隔)向内存中的分布式列存同步,保证数据分析的新鲜度。一个新的特性是其能够利用结合Autopilot服务利用机器学习技术自动优化行列混存,包括如何压缩列存,如何选择列到内存,以及何时将行存同步到列存等。集中式HTAP传统的Oracle数据库支持广义的HAP,即同时支持交易和分析,并通过In-Memory支持行列共存。Oracle通过内存行转列技术来支持OLAP。目前DB2、SQLSerer、MySQL通过内存行转列来支持HAP。集中式HAP数据库业界代表包括Oracle、DB2、SQLSerer。Oracle在自己原生的行存上集成了基于内存的列存储。行存储通过缓存进行数据的更新、点查询和短范围查询。列存储可通过压缩编码和SIMD等技术进行查询加速。同时,最新的更新数据会被记录到作为增量行存储的堆表中,以便列存储访问最新数据。IBMDB2在原有行存的基础上结合BLU内存加速器针对HAP负载进行优化。基于行存的DB2关系数据库支持全CID特性,并可通过内存优化写操作。其增加的BLU加速器基于列存设计,也同时面向内存优化,并能够通过基于频率的字典压缩数据,单指令、多数据(Single-Instruction,MultipleData,SIMD)等技术提升分析性能。特别地,DB2的更新操作可通过基于内存的增量缓冲区快速同步到BLU的列存中。SQLSerer通过建立列存索引在内存表上的方式来加速分析型查询。本质上,在内存中的列存索引也是一种形式的列存,因为它包含了该列的所有数据。SQLSerer在原有的基于磁盘的行存引擎基础上集成了基于内存的Heaton行引擎和基于内存的Apollo列引擎。其基于内存的行存引擎不仅可以处理事务操作,还会将最新的更新保留在内存表的尾部作为增量行存储,这样列存也能够同时访问增量最新数据。SQLSerer的列索引分为聚集列索引和非聚集列索引。聚集列索引包含了所指向内存表的所有列数据,非聚集列索引只包含部分列数据。列索引将行数据以100万为一个单位分为组后,分段进行压缩索引。所有列分段和压缩字中进行保存,元数据可以帮助所有分段组成一个完整列。被频繁使用的列索引会被放入内存中以减少磁盘I/O,不频繁使用的列索引放到外存中。分布式HTAP一种是以内存型主列存为基础结合增量行存支持HAP。主列存主要处理OLAP类分析查询,增量行存负责OTP类事务操作,并直接将更新数据定期合并到主列存中。此类系统因为以列存为主,所以OLAP的性能很高,且增量行存直接与列存连接,数据分析的新鲜度也很高。但其缺点也很明显,就是OTP处理性能中等,扩展性也不高,负载隔离性很低。分布式HAP数据库业界代表性系统是SAPHANA。它的主列存可通过压缩,向量执行和OLAP多维分析等技术进行查询加速。另外,其利用CPU的多级缓存机制优化事务处理。其中L1缓存用于做针对行的写操作,然后数据会同时写到Redo日志里进行持久化;L2缓存导入,然后将数据转换成列个格式并合并到列式主存中。最后列主存用于查询加速与数据的持久化另外一种是以分布式架构支持混合事务与分析处理。其分布式行存为主存储,列存为行存的副本,主节点在处理事务时写入日志,并异步式地向其他节点发送最新日志,通过分布式协议进行事务处理。其中,有部分节点会被选为列存节点,负责加速复杂查询。特别地,只有行存节点参与事务协议,列存节点不参与分布式事务,只有当事务成功提交后将最新日志复制到本地,将行数据转换成列数据后写入持久存储。由于事务和查询分别在行存节点和列存节点上处理,此类系统具有高度负载隔离性。另外,由于完全基于分布式架构,此类系统面向OTP和OLAP的扩展性都很高。然而,由于数据同步需要分布式地以日志传送,因而其数据分析的新鲜度偏低。分布式HAP数据库业界代表性系统是TiDB。其基于Raft日志回放技术在oller节点上建立行存的同时向Learner节点异步地存储一个列存副本。通过建立一个增量列式树,系统可定期将更新合并到列存副本中,保持数据的一致性。TiDB的SQL引擎针对分布式行存储通过两阶段提交2PC的方式实现了可重复读的事务隔离级别。除此之外,其还能基于压缩后的列存副本进行查询加速。TiDB实现了一个基于代价模型的查询优化器。根据代价估计,系统可决定查询计划在行存,或列存,或行列混合执行,即查询的部分操作在行引擎操作,部分操作在列引擎操作,然后结果通过合并后统一返回给用户。类似的系统还有Singlestore,一个基于MemSQL原内核开发的内存型分布式数据库,其基于原基于行存的分布式架构,在部分节点持久化时写入列存副本,用于加速查询。稍有不同的是,Singlestore采用主备分布式架构,不采用分布式事务处理,而是利用主节点处理完事务后,同步到其他副节点。云原生HTAP云原生HTAP数据库也是通过计算存储分离来提升HTAP数据库的弹性。目前Oracle和MySQL供了云服务的HTAP如何鉴别HTAPHTAP数据库目的是同时支持OLTP和OLAP查询,因此鉴别方法是构造同时需要OLTP和OLAP需求来进行评测(例如混合TPC-C和TPC-H)当数据集的数据结构多样化,关系型数据库中的表格很难表达时,可以根据数据特征和应用需求,选择将信息存储在合适的非关系型数据类型中。能够在这些多样的数据类型上,提供存储和检索数据能力的数据库,被称之为非关系型数据库,或者NoSQL数据库。NoSQL数据库是非关系型数据库的统称,其中“No”指的是“NotOnly”,表示不止于SQL,NoSQL数据库采用不同于关系数据“行列”组织的数据模型。对比关系型数据库,NoSQL采用更简单的设计方式,更灵活的数据模型,在设计上有着更好的扩展能力,这使得NoSQL数据库能更有效地应对因:NoSQL数据库无需预先指定数据的模式(schema);NoSQL数据库可以混合支持多种数非关系型数据库,根据数据类型划分,主要包括:键读取数据不准确,称为陈旧读取的问题[4]。此外,一些NoSQL系统可能会出现写入丢失和其NoSQL数据库天然运行在分布式环境下,因此需要考虑分布式下的数据一致性问题,这使得NoSQL的数据一致性的要求与传统关系数据库相比发生了很大的变化。传统关系型数据库支持事务CID强一致性。而在分布式环境下,CAP理论表明一致性、可用性和分区容错性三者不可兼得。为了保障分布式环境下的数据可用性,NoSQL数据库对数据一致性的要求做了分类和宽松化处理,有了BASE弱一致性理论。键值对集合,类似于映射或者字典,是最为基本的关联数组。每个键YCSB:在数据库的主键上,对数据库进行读写,自然很适合键值数据库的测试。特别的,对于其他半结构和结构化数据库而言,只要存在主键,就可以使用YCSB,所以也是一个广义的基准测试。NoSQL数据库一般更关注扩展性,因此在本章不在按照单机、集中式、分布式进KV数据库业界代表包括Redis、RocksDB、DynamoDB[10]。是文档型的。文档在关系数据库中,同一个对面向文档的系统依赖于文档中的内部结构来提取元数据,以便数据库引擎用于进文档数据库常用到的增删改操作,还Noog:允许基于通用语法的用户指定的工作负载描述。然后将抽象语法中的工作负载描述转换为特定于数据库的操作,从而通过映射在一组受支持的数据库上执行CUD操作。文件存储格式为BSON(一种JSON的扩展文档型数据库业界代表包括MongoDB、CouchDB列簇式数据库(Wide-ColumnDatabase)是一类使用表、行和列进行数据存储(wide-columnstore)的NoSQL数据库,与关系数据库不同的是,列的名称和格式在同一表中的行与行之间宽列存储可以视为一种二维键值存储。列簇式数据库针对快速检索数据列进行了优化,通常用于OLAP。适用于数据库表的列式存储是分析查询性能的一个重要组成部分,因为它极大地降低了整体磁盘I/O要求,并减少了需要从磁盘载[14]存储数据的另一大特点是方便存储结构化和半结构化数宽列存储(Wide-columnstore)不同于早期的列存储(Column-orientedstore),因为它们的两存储中,采用列式数据布局,使得每一列单独存储在定的列族中,所有数据都以逐行方式存储,这样与其他NoSQL数据库一样,列簇式数据库旨在利用低成本硬件的分布式群集进YCSB++:是专为测试列簇式可扩展存储的数据库,包括并行性测试、弱一致性测试、块上传测试、表的预先分裂、服务器端过滤和访问权限等。基准测试在多个基准测试客户机之提供分布式同步,并能够测量最终的一致性、批量加载以及批量写入(如表预拆分)的优化效果。此外,基准测试还可以测量额外功能(如访问控制)的性能开销,并收集每个集群节点上的资源度量的监控信息。[19]列簇式数据库业界代表包括BigTable、HBase、Cassandra图数据库是一种使用图结构进行语义查询,并使用节点、边和属性来表示和存图分析引擎:用于大规模图分析,例如社交网络分析。例如GraphX,Powergraph图表示学习引擎:用于AI引擎的图优化分析。例如PyTorch-BigGraph不幸的是,迄今为止没有一种通用的图形查询语言得到大家特别的,图数据库用于处理图上的OLTP服务,图计算引擎用于处理图上的OLAPXGDBench是YCSB的一个扩展,通过添加一个图数据模型和工作负载生成器来对GDB一种分布式图形数据库基准测试框架,用于探索节点的邻域和寻]图数据库业界代表–Neo4J:Neo4J是一个图数据库,将数据间的关系作为“第一公民”来对它可以为图提供CID事务处理,支持在线备份,具有高可用性。构成图的基本单位是节点和关系,均以键值的方式存储。图分析引擎业界代表–GraphX:SparkGraphX是一个分布式图处理框架,它是基于Spark图分析引擎业界代表–PowerGraph:GraphLabPowerGraph是一个用C++图表示学习引擎业界代表–PyTorch-BigGraph:它可以更快、更轻-实时流数据包含个体、时间、空间、状态信息。时序数据库(Timeseriesdatabase)是能够TS-Benhmark:基于DCGAN的数据生成模型,在经过真实数据训练后,以高吞吐量生成高质量的合成时间序列数据。特别是,我们模拟了一个场景,其中来自风力涡轮机的大量传感器(不同类型)经常向数据中心报告感测数据。工作负载:1.读负载,测试在时序数据库上的范围查询、聚合查询、滚动窗口查询等;2.写负载,假设每个风力涡轮机定期(默认情况下为7秒)向TSDB报告收集的数据;3.加载负载,将一定大小的时间序列数据批量加到TSDB时的数据加载性能。AnalyticsinMotion(AIM)评估流媒体事件的接收性能和基于计费数据的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年版酒店整体出租协议
- 2024年标准家用冰箱采购合同范本版B版
- 2024年植筋工程监理合同3篇
- 2024年沙粒原料订购协议
- 2024年水暖电工程监理与劳务分包服务合同3篇
- 2024山西房产买卖合同(含贷款担保及还款规划)3篇
- 2024年消防安全系统维修协议样本版B版
- 2024年标准设计专利权转让协议版B版
- 山西医科大学晋祠学院《电子商务双语》2023-2024学年第一学期期末试卷
- 2024年完成特定市场推广任务的劳动合同样本3篇
- 校内建筑构造实训报告
- 资产评估服务评估实施方案
- 普通话语音与发声-1智慧树知到期末考试答案2024年
- 企业合同签订流程培训
- 2024年浙江省义乌市绣湖中学八年级数学第二学期期末学业质量监测试题含解析
- 北京市海淀区2023-2024学年四年级上学期期末英语试题
- 乡镇街道合法性培训审查
- 危重病人心理护理与沟通技巧
- 四年级上数学计算题100道可打印
- 曳引驱动乘客电梯安全风险评价内容与要求
- 耳硬化症护理查房
评论
0/150
提交评论