




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OLAP和OLTP通过ETL进行衔接。为了提升OLAP的性能,需要在ETL过程中进行大量的预计算,包括数据结构的调整和业务逻辑处理。这样的好处是可以控制OLAP的延迟,提升用户体验。但是,因为要避免抽取数据对OLTP系统造成影响,所以必须在日终的低谷期才能启动ETL过程。这样一来,OLAP与OLTP的数据延迟通常就在一天左右,习惯上大家把这种时效性表述为T+1。其中,T日就是指OLTP系统产生数据的日期,T+1日是OLAP1你可能已经发现了,这系的主要问题就是OLAP系统的据时效性,1的,进入大数据时代后,商业决策更加注重数据的支撑,而且数据分析也不断向一线操作渗透,这都要求OLAP系统更快速地反映业务的变化。说到这,你应该猜到了,HTAPOLAP用准实时数据计算替代原有批量ETL过程,重建OLAP弱化甚至是干脆拿掉OLAP,直接在OLTP系统内扩展,也就是HTAP重建OLAP我们先来看第一种思路。重建OLAP体系,重视数据加工的时效性,正是近年来大数据技术的主要发展方向。Kappa架构就是新体系的代表,它最早由LinkedIn的JayKreps在2014年的一篇文章中提出。在Kappa架构中,原来的批量文件传输方式完全被Kafka替代,通过流计算系统完成数据的快速加工,数据最终落地到ServingDB中提供查询服务。这里的ServingDB泛指各种类型的,可以是HBase、Redis或者MySQL。要注意的是,Kappa架构还没有完全实现,因为在实践中流计算仍然无法替代批量计算,ServingDB也各种类型的分析查询需求。未来,Kappa架构需要在两方面继续完Kafka和FlinkOLAPETL,降低数据延迟。这个新体系是流计算的机遇,也是OLAP数据库的自我救赎。新建HTAP第二种思路是HTAP。HTAP(HybridTransaction/yticalProcessing)就是混合事务分析处理,它最早出现在2014年Gartner的一份报告中,很巧和Kappa架构是同一年。Gartner用HTAP来描述一种新型数据库,它打破了OLTP和OLAP之间的隔阂,HTAP可以省去繁琐的ETL操作,避免批量处理造成的滞后,更快地对数据进行分这个构想很快表现出它性的一面,由于数据产生的在OLTP系统,所以HTAP概念很快成为OLTP数据库,尤其是NewSQL风格的分布式数据库,向OLAP领域进军的那么,NewSQL在初步解决OLTP场景的高并发、强一致性等问题后,能不能兼顾其实还很难讲,因为从技术实践看,重建OLAP路线的相关技术似乎发展得更快,参与厂相比之下,P的进展比较缓慢,鲜有生产级的工业实践,但仍有不少厂商将其作为产品的演进方向。目前,厂商官宣的P至少包括B和,而OceBase在近期版本中推出OLAP场景的性。基于商业策略的考虑,我相信未来还会有分布式数据库竖起P的大旗那么接下来,我们分析下P的,让你更好地识P。HTAP的两种设这就要先说回OLTP和OLAP,在架构上,它们的差异在于计算和两方面计算是指计算引擎的差异,目标都是调度多节点的计算资源,做到最大程度地并行处理。OLAP是海量数据要追求高吞吐量,而OLP是指数据在磁盘上的组织方式不同,而组织方式直接决定了数据的效率。OLTP分布式数据库的主流设计理念是计算与分离,那么计算就比较容易实现无状态化,所个P系统内构建多个计算引擎显然不是太的事情,而真的要将P落地为可运行系统,根本性的就是。面对这个,业界有两个不同的解决思Spanner使用的融合性PAX(PartitionAttributesAcross),试图同时兼容两类TiDB4.0版本中的设计,在原有行式的基础上,新增列式,并通过创新性的设首先,我们一起看看Spanner的方案。Spanner2017 ingaSQLSystem”中介绍了它的新一代Ressi,其中使用了类似PAX的方式。这个PAX并不是Spanner的创新,早在VLDB2002的 “DataPageLayoutsforRelationalDatabasesonDeepMemoryHierarchies”中就被提出了。 从CPU缓存友的角度,对不同的方式进行了探讨,涉及NSM、DSM、PAX三种格式。NSM(行式NSM(N-aryStorageModel)就是行式,也是OLTP数据库默认的方式,始终伴随着关系型数据库的发展。我们常用的OLTP数据库,比如MySQL(InnoDB)、PostgreSQL、Oracle和SQLServer等等都使用了行式。顾名思义,行式的特点是将一条数据记录集中存在一起,这种方式更加贴近于系模型。写入的效率较高,在时也可以快速获得一个完整数据记录,这种特点称为录内的局部性(Intr-Recordatlity但是,行式对于OLAP分析查询并不友好。OLAP系统的数据往往是从多个OLTP统中汇合而来,单表可能就有上百个字段。而用户一次查询通常只其中的少量字段,如果以行为单位数据,查询出的多数字段其实是无用的,也就是说大量I/O无效的。同时,大量无效数据的,又会造成CPU缓存的失效,进一步降低了系统的性CPUDSM(列式 positionStorageModel)就是列式,它的出现要晚于行式。典型代表系统是C-Store,它是迈克尔·斯通布雷克(MichealStonebraker)主导的开源项目,后来的商业化产品就是Vertica。列式就是将所有列集中,不仅更加适应OLAP的特点,对CACHE也更友好。这种特点称为记录间的局部性(Inter-RecordSpatialLocality)。列式能够大幅提升查询性能,以速度快著称的ClickHouse就采用了列式。列式的问题是写入开销更大,这是因为根据关系模型,在逻辑上数据的组织单元仍然是行,改为列式后,同样的数据量会被写入到的数据页(page)直接对应着物理扇区,那么磁盘I/OPAX增加了minipage这个概念,是原有的数据页下的二级单位,这样一行数据记录在数据页上的基本分布不会被破坏,而相同列的数据又被集中地在一起。PAX本质上还是更接近于行式,但它也在努力平衡记录内局部性和记录间局部性,提升了OLAP的性理论上,PAX提供了一种兼容性更好的方式,可让人有些信心不足的是其早在与这个思路类似的设计还有HyPerDataBlock(SIGMOD2016),DataBlock构造了一种独有的数据结构,同时面向OLTP和OLAP场景。如果底层是一份数据,那么天然就可以保证OLTP和OLAP的数据一致性,这是的最大优势,但是由于模式不同,性能的相互影响似乎也是无法避免,只能尽力选择一个平衡点。iB展现了一种不同的思路,介于PAXOLAP和OLAP采用不的方式,物理上是分离的,然后通过创新性的策略,保证两者的数据一致性。TiDB是在较早的版本中就提出了HTAP这个目标,并增加了TiSpark作为OLAP的计算引擎,但仍然共享OLTP的数据TiKV,所以两种任务之间的资源竞争依旧不可避免。直到近期的4.0版本中,TiDB正式推出了TiFlash作为OLAP的。我们的关注点集中在TiFlash与TiKV之间的同步机制上。其实,这个同步机制仍然是基于Raft协议的。TiDB在Raft协议原有的Leader和Follower上增加了一个角色Learner。这个Learner和Paxos协议中的同名角色,有类似的职责,就是负责学习已经达成一致的状态,但不参与投票。这就是说,RaftGroup在写入过程中统计多数节点时,并没有包含Learner,这样的好处是Learner不会拖慢写操作,但带来的问题是Learner的数据更新必然会于Leader。保证不了AP与TP之间的数据一致性吧?r每次接到请求后,首先要确认本地的数据是否足够新,而后才会执行查询操作。怎么确认足够新呢?r会拿着读事务的时间戳向eader发起一次请求,获得r的CommitInde,就是已提交日志的顺序编号。然后,就等待本地日志继续Appl,直到本地的日志编号等于CommitIndex后,数据就足够新了。而在本地副本完成同步前,请求会一直等待直到超时。这里,你可能又会产生疑问。这种同步机制有效运转的前提是TiFlash不能太多,否TiFlash是一个列式,列式的写入性能通常不好,TiFlash怎么能够保持与TiKV这就要说到TiFlash的引擎DeltaTree,它参考了B+Tree和LSM-Tree的设计,分为DeltaLayer和StableLayer两层,其中DeltaLayer保证了写入具有较高的性能。因为目前还没有向你介绍过引擎的背景知识,所以这里不再展开DeltaTree的内容了,我会在第22讲再继续讨论这个话题。lashOLAPOLTP通过ETL与OLAP衔接,所以OLAP的数据时效性通常是T+1,不反映业务的变化。这个问题有两种解决思路,一种是重建OLAP体系,通过流计算方式替代批量数据处理,缩短OLAP的数据延迟,典型代表是Kappa架构。第二种思路是GartnerHTAP。P的设计要点在计算引擎和引擎,其中引擎是基础。对于引擎也两种不同的方案,一种是以PAX为代表,用一份物理融合行式和列式的特点采用了这种方式。另一种是B的h为OLTP和OLAP分别设行式和列式,通过创新性的同步机制保证数据一致。TiDB的同步机制仍然是基于Raft协议的,通过增加Learner角色实现异步。异步必然带来数据的延迟,Learner在响应请求前,通过与Leader同步增量日志的方式,TiFlash作为列存,首先要保证性能,但因为要保证数据一致性,所以也要求具备较高的写入性能,TiFlash通过DeltaTree开,将在22讲继续讨论。总的来说,HTAP是解决传统OLAP的一种思路,但是推动者只是少数OLTP数据库厂商。再看另一边,以流计算为基础的新OLAP体系,这些技术本身就是大数据技术生态的一部分,有的参与者,不断有新的成果落地。至于HTAP具有绝对优势的数据一致性,后者,也就是新OLAPHTAP技术复杂度有所降低。最后,TiDB给出的解决方案很有新意,但是能否覆盖足够大的OLAP场景,仍有待观察。TiDBOLAPTiFlash,它保持数据一致性的方法是,每次TiFlash接到请求后,都会向TiKVLeader请求的日志增量,本地rey日志后再继续处理请求。这种模式虽然能够保证数据足够新,但比起TiFlash模式还能优化吗?在什么情况下不需要与Leader通讯?AnastassiaAilamakietal.: DataPageLayoutsforRelationalDatabasesonDeepMemoryHierarchiesHaraldLangetal: DataBlocks:HybridOLTPa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络通讯设施建设承包合同
- 专利技术许可使用与转让协议
- 事业单位正式聘用劳动合同
- 环保科技研发与推广合作协议
- 企业向法人借款合同
- 三农田土壤健康与改良方案
- 智慧农业技术研发与应用合作协议
- 公路护栏采购合同
- 动物养殖场地租赁合同
- 经典工程劳务承包合同
- YY/T 1537-2017放射治疗用激光定位系统性能和试验方法
- SB/T 10752-2012马铃薯雪花全粉
- 复变函数与积分变换全套课件
- 湿型砂中煤粉作用及检测全解析
- 最新部编版语文五年级下册教材分析及教学建议课件
- A4横线稿纸模板(可直接打印)
- 环境材料学教学课件汇总完整版电子教案全书整套课件幻灯片(最新)
- JJF1175-2021试验筛校准规范-(高清现行)
- 产品结构设计概述课件
- 八年级下综合实践教案全套
- 第8课《山山水水》教学设计(新人教版小学美术六年级上册)
评论
0/150
提交评论