数据中台之结构化大数据存储设计_第1页
数据中台之结构化大数据存储设计_第2页
数据中台之结构化大数据存储设计_第3页
数据中台之结构化大数据存储设计_第4页
数据中台之结构化大数据存储设计_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(完整)数据中台之构造化大数据存储设计(完整)数据中台之构造化大数据存储设计数据中台之构造化大数据存储设计一.前言任何应用系统都离不开对数据的处理,数据也是驱动业务创以及向智能化进展最核心的东西。这也是为何目前大多数企业都在构建数据中台的缘由,数据处理的技术已经是核心竞争力。在一个完备的技术架构中,通常也会由应用系统以及数据系统构成。应用系统负责处理业务规律,而数据系统负责处理数据。传统的数据系统就是所谓的『大数据』技术,这是一个被制造出来的名词,代表着的技术门槛。近几年得益于产业的进展、业务的创、数据的爆发式增长以及开源技术的广泛应用,经受多年的磨炼以及在宽放开发者的共建下,大数据的核心组件和技术架构日趋成熟。特别是随着云的进展,让『大数据』技术的使用门槛进一步降低,越来越多的业务创会由数据来驱动完成。『大数据』技术会逐步向轻量化和智能化方向进展,最终也会成为一个研发工程师的必备技能之一,而这个过程必需是由云计算技术来驱动以及在云平台之上才能完成。应用系统和数据系统也会渐渐融合,数据的应用系统,在与你交互的同时,会渐渐的生疏你.数据系统的进展驱动了业务系统的进展,从业务化到规模化,再到智能化。业务化:完成最根本的业务交互规律。规模化:分布式和大数据技术的应用,满足业务规模增长的需求以及数据的积存.智能化:人工智能技术的应用,挖掘数据的价值,驱动业务的创。向规模化和智能化的进展,仍旧存在肯定的技术门槛。成熟的开源技术的应用能让一个大数据系统的搭建变得简洁,同时大数据架构也变得很普遍,例如广为人知的Lambda架构,肯定程度上降低了技术的入门门分布式技术及简单环境下定位问题的力量,仍旧具备很高的技术门槛.数据系统的核心组件包含数据管道、分布式存储和分布式计算,数据系统架构的搭建会是使用这些组件的组合拼装。每个组件各司其职,组件与组件之间进展上下游的数据交换,而不同模块的选择和组合是架构师面临的最大的挑战。本篇文章主要面对数据系统的研发工程师和架构师,我们会首先对数据系统核心组件进展拆解,介绍每个组件下对应的开源组件以及云上产品.之后会深入剖析数据系统中构造化数据的存储技术,介绍阿里云Tablestore二.数据系统架构核心组件一个数据应用系统中会包含的几大核心组件,以及组件间的数据流关系。应用系统主要实现了应用的主要业务规律,处理业务数据或应用元数据等。数据系统主要对业务数据及其他数据进展汇总和处理,对接BI、推举或风控等系统。整个系统架构中,会包含以下比较常见的几大核心组件:关系数据库:用于主业务数据存储,供给事务型数据处理,是应用系统的核心数据存储。高速缓存:对简单或操作代价昂贵的结果进展缓存,加速访问.搜寻引擎:供给简单条件查询和全文检索.队列:用于将数据处理流程异步化,连接上下游对数据进展实时交换。异构数据存储之间进展上下游对接的核心组件,例如数据库系统与缓存系统或搜寻系统间的数据对接。也用于数据的实时提取,在线存储到离线存储的实时归档。非构造化大数据存储:用于海量图片或视频等非构造化数据的存储,同时支持在线查询或离线计算的数据访问需求。线到离线的连接,特征是能支持高吞吐数据写入以及大规模数据存储,存储和查询性能可线性扩展。展的需求,也可存储面对离线分析的实时写入数据.实时分析的力量.流计算:对非构造化数据和构造化数据进展流式数据分析,低延迟产出实时视图。求,供给不同的数据模型抽象,以及面对在线和离线的不同的优化偏向.我们来看下下面这张具体比照表:派生数据体系在数据系统架构中,我们可以看到会存在多套存储组件。对于这些存储组件中的数据,有些是来自应用的直写,有些是来自其他存储组件的数据复制.例如业务关系数据库的数据通常是来自业务,而高速缓存和搜寻引擎的数据,通常是来自业务数据库的数据同步与复制。不同用途的存储组件有不同类型的上下游数据链路,我们可以或许将其归类为主存储和辅存储两类,这两类存储有不同的设计目标,主要特征为:主存储:数据产生自业务或者是计算,通常为数据首先落地的存储。ACID等事务特性可能是强需求,供给在线应用所需的低延迟业务数据查询.辅存储:数据主要来自主存储的数据同步与复制,辅存储是主存储的某个视图,通常面对数据查询、检索和分析做优化。为何会有主存储和辅存储的存在?能不能统一存储统一读写,满足全部场景的需求呢?目前看还没有,存储引擎的实现技术有多种,选择行存还是列存,选择B+tree还是LSM—tree,存储的是不行变数据、频繁更数据还是时间分区数据,是为高速随机查询还是高吞吐扫描设计等等。数据库产品目前也是分两类,TPAP,HTAP索引表数据会随着主表数据而变化,强全都同步并且为某些特定条件组合查询而优化。关系数据库与高速缓存和搜寻引擎也是主与辅的关系,承受满足最终全都的数据同步方式,供给高速查询和检索。在线数据库与数仓也是主与辅的关系,在线数据库内数据集中复制到数仓来供给高效的BI挑战是数据如何在主与辅之间进展同步与复制.上图我们可以看到几个常见的数据复制方式:应用层多写这是实现最简洁、依靠最少的一种实现方式,通常实行的方式是在应用代码中先向主存储写数据,后向一是很难保证主与辅之间的数据全都性,无法处理数据写入失效问题;二是数据写入的消耗积存在应用层,加重应用层的代码简单度和计算负担,不是一种解耦很好的架构;三是扩展性较差,数据同步规律固化在代码中,比较难敏捷添加辅存储.异步队列复制这是目前被应用比较广的架构,应用层将派生数据的写入通过队列来异步化和解耦。这种架构下可将主存储和辅存储的数据写入都异步化,也可仅将辅存储的数据写入异步化.第一种方式必需承受主存储可异步写入,否则只能实行其次种方式。而假设承受其次种方式的话,也会遇到和上一种『应用层多写』方案类似的问题,应用层也是多写,只不过是写主存储与队列,队列来解决多个辅存储的写入和扩展性问题。CDC〔ChangeDataCapture)技术这种架构下数据写入主存储后会由主存储再向辅存储进展同步,对应用层是最友好的,只需要与主存储打交道。主存储到辅存储的数据同步,则可以再利用异步队列复制技术来做。不过这种方案对主存储的力量有很高的要求,必需要求主存储能支持CDC技术。一个典型的例子就是MySQL+Elasticsearch的组合架构,ElasticsearchMySQLbinlogbinlogMySQLCDC『派生数据体系』是一个比较重要的技术架构设计理念,其中CDC技术是更好的驱动数据流淌的关键手段。具备CDC技术的存储组件,才能更好的支撑数据派生体系,从而能让整个数据系统架构更加敏捷,降低了数据全都性设计的简单度,从而来面对高速迭代设计。惋惜的是大多数存储组件不具备CDC技术,例如HBaseTablestoreCDC,CDC的章节会具体介绍.一个好的产品,在产品内部会承受派生数据架构来不断扩大产品的力量,能将派生的过程透亮化,内部解决数据同步、全都性及资源配比问题。而现实中大多数技术架构承受产品组合的派生架构,需要自己去治理MySQL+ElasticsearchHBase+Solr大问题是,在解决CDC辅存储与主存储具备一样的数据写入力量?存储组件的选型架构师在做架构设计时,最大的挑战是如何对计算组件和存储组件进展选型和组合,同类的计算引擎的差异化相对不大,通常会优先选择成熟和生态健全的计算引擎,例如批量计算引擎Spark和流计算引擎FlinkSQL和NoSQLNoSQL下又依据各类数据模型细分为多类、对象存储、文件存储和高速缓存等不同类别。带来存储选型简单度的主要缘由是架构师需要综合考虑数据分层、本钱优化以及面对在线和离线的查询优化偏向等各种因素,且当前的技术进展还是多样化的进展趋势,不存在一个存储产品能满足全部场景下的数据写入、存储、查询和分析等需求。有一些阅历可以共享给大家:数据模型和查询语言仍旧是不同数据库最显著的区分,关系模型和文档模型是相对抽象的模型,而类似时序模型、图模型和键值模型等其他非关系模型是相对具象的抽象,假设场景能匹配到具象模型,那选择范围能缩小点。存储组件通常会划分到不同的数据分层,选择面对规模、本钱、查询和分析性能等不同维度的优化偏向,选型时需要考虑清楚对这局部数据存储所要求的核心指标.区分主存储还是辅存储,对数据复制关系要有明确的梳理。(主存储和辅存储是什么在下一节介绍〕未知需求的扩展性更重要。另外关于数据存储架构,我认为最终的趋势是:数据肯定需要分层数据最终的归属地肯定是OSS会由一个统一的分析引擎来统一分析的入口,并供给统一的查询语言构造化大数据存储构造化大数据存储在数据系统中是一个格外关键的组件,它起的一个很大的作用是连接『在线』和『离线数据分析的结果集存储来直接支持在线查询或者是数据派生。依据这样的定位,我们总结下对构造化大数据存储的几个关键需求。关键需求大规模数据存储入和输出,必需要能支撑PB高吞吐写入力量ETLT+1存储需要能支撑多个在线数据库内数据的导入,也要能承受大数据计算引擎的海量结果数据集导出。所以必需能支撑高吞吐的数据写入,通常会承受一个为写入而优化的存储引擎。丰富的数据查询力量构造化大数据存储作为派生数据体系下的辅存储,需要为支撑高效在线查询做优化。常见的查询优化包括高速缓存、高并发低延迟的随机查询、简单的任意字段条件组合查询以及数据检索。这些查询优化的技术手段就是缓存和索引,其中索引的支持是多元化的,面对不同的查询场景供给不同类型的索引。例如面对固B+treeR—treeBKD—tree面对多条件组合查询和全文检索的倒排索引。存储和计算本钱分别存储计算分别是目前一个比较热的架构实现,对于一般应用来说比较难体会到这个架构的优势。在云上的大数据系统下,存储计算分别才能完全发挥优势。存储计算分别在分布式架构中,最大的优势是能供给更敏捷的存储和计算资源治理手段,大大提高了存储和计算的扩展性。对本钱治理来说,只有基于存储计算分离架构实现的产品,才能做到存储和计算本钱的分别。存储和计算本钱的分别的优势,在大数据系统下会更加明显。举一个简洁的例子,构造化大数据存储的存储量会随着数据的积存越来越大,但是数据写入量是相对平稳的。所以存储需要不断的扩大,但是为了支撑数据写入或临时的数据分析而所需的计算资源,则相对来说比较固定,是按需的。数据派生力量一个完整的数据系统架构下,需要有多个存储组件并存.并且依据对查询和分析力量的不同要求,需要在数据派生体系下对辅存储进展动态扩展.所以对于构造化大数据存储来说,也需要有能扩展辅存储的派生力量,来扩展数据处理力量。而推断一个存储组件是否具备更好的数据派生力量,就看是否具备成熟的CDC技术。计算生态数据的价值需要靠计算来挖掘,目前计算主要划为批量计算和流计算.对于构造化大数据存储的要求,一是需要能够对接主流的计算引擎,例如Spark、Flink等,作为输入或者是输出;二是需要有数据派生的力量,将自身数据转换为面对分析的列存格式存储至数据湖系统;三是自身供给交互式分析力量,更快挖掘数据价值.满足第一个条件是最根本要求,满足其次和第三个条件才是加分项。开源产品HBaseCassandra,CassandraWideColumnNoSQL类别下排名Top—1的产品,在国外应用比较广泛.但这里我们重点提下HBase,由于在国内的话相比CassandraHBaseHDFS的存储计算分别架构的WideColumn数据存储,它的优点为:存储计算分别架构:底层基于HDFS,分别的架构可带来存储和计算各自弹性扩展的优势,与计算引SparkLSM开发者生态成熟,接入主流计算引擎:作为进展多年的开源产品,在国内也有比较多的应用,开发者社区很成熟,对接几大主流的计算引擎。HBase查询力量弱供给高效的单行随机查询以及范围扫描,简单的组合条件查询必需使用Scan+Filter的方式,稍不留意就HBasePhoenixMySQL合最左匹配的查询条件才能做索引优化,可被优化的查询条件格外有限。数据派生力量弱CDCHBaseCDCHBaseReplicationCDC的力量,但是仅为HBaseReplicationHBase的CDC技术,例如用于和SolrLilyIndexer,但是比较惋惜的是这类组件从理论和机制上分析就没法做到CDC本钱高前面提到构造化大数据存储的关键需求之一是存储与计算的本钱分别,HBaseCPUCPU小比例关系.即随着存储空间的增大,CPU核数本钱也会相应变大,而不是按实际所需计算资源来计算本钱。要到达完全的存储与计算本钱分别,只有云上的Serverless运维简单HBaseHadoopZookeeperHDFS,没有专业的运维团队几乎无法运维。热点处理力量差HBaseRangePartitionHashPartitionHBase供给了大量的最正确实践文档来指引开发者在做表的Rowkeyhashkey,salted-tableRegionSplitMove化机制.国内的高级玩家大多会基于HBaseHBase依据自身业务查询特色研发自己的索引方案,例如自研二级索引方案、对接Solr做全文索引或者是针对区bitmapHBase值得借鉴。TablestoreTablestore是阿里云自研的构造化大数据存储产品,具体产品介绍可以参考官网以及权威指南。Tablestore个设计理念特地设计和实现了一些特色的功能。设计理念Tablestore了一些特色设计方向,简洁概括下Tablestore存储计算分别架构:承受存储计算分别架构,底层基于飞天盘古分布式文件系统,这是实现存储计算本钱分别的根底。LSM:LSMB+treeLSM好的支持数据冷热分层。Serverless产品形态:基于存储计算分别架构来实现本钱分别的最关键因素是Serverless效劳化,只有Serverless数据导入,来拘束线数据库或者是来自离线计算引擎,在此时需要有足够的计算力量能接纳高吞吐的写入,而寻常可能仅需要比较小的计算力量,计算资源要足够的弹性.另外在派生数据体系下,主存储和辅存储通常是异构引擎,在读写力量上均有差异,有些场景下需要敏捷调整主辅存储的配比,此时也需要存储和计算资源弹性可调。多元化索引,供给丰富的查询力量:LSM的查询场景需要不同类型的索引,所以Tablestore供给多元化的索引来满足不同类型场景下的数据查询需求。CDCTablestoreCDCTunnelService,支持全量和增量的实时数据订阅,并且能无缝Flink拥抱开源计算生态:除了比较好的支持阿里云自研计算引擎如MaxComputeDataLakeAnalytics的计FlinkSpark流批计算一体:能支持SparkCDCFlink数据进展流计算,真正实现批流计算结合。特色功能多元化索引Tablestore多元索引能供给更丰富的查询功能,包含任意列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论