(完整)数据中台之结构化大数据存储设计_第1页
(完整)数据中台之结构化大数据存储设计_第2页
(完整)数据中台之结构化大数据存储设计_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、(完整)数据中台之结构化大数据存储设计(完整)数据中台之结构化大数据存储设计数据中台之结构化大数据存储设计一. 前言为何目前大多数企业都在构建数据中台的原因,数据处理的技术已经是核心竞争力。在一个完备的技术架构 大数据技术会逐步向轻量化和智能化方向发展,最终也会成为一个研发工程师的必备技能之一 ,而业务化:完成最基本的业务交互逻辑。规模化:分布式和大数据技术的应用,满足业务规模增长的需求以及数据的积累. 智能化:人工智能技术的应用,挖掘数据的价值,驱动业务的创新。向规模化和智能化的发展,仍然存在一定的技术门槛。成熟的开源技术的应用能让一个大数据系统的搭 建变得简单,同时大数据架构也变得很普遍,

2、例如广为人知的 Lambda 架构,一定程度上降低了技术的入门门的组合拼装。每个组件各司其职,组件与组件之间进行上下游的数据交换,而不同模块的选择和组合是架构 师面临的最大的挑战。本篇文章主要面向数据系统的研发工程师和架构师,我们会首先对数据系统核心组件进行拆解,介绍每个组件下对应的开源组件以及云上产品 .之后会深入剖析数据系统中结构化数据的存储技术,介绍阿里云Tablestore 选择哪种设计理念来更好的满足数据系统中对结构化数据存储的需求。二. 数据系统架构核心组件务逻辑,处理业务数据或应用元数据等。数据系统主要对业务数据及其他数据进行汇总和处理,对接 BI、推荐或风控等系统。整个系统架构

3、中,会包含以下比较常见的几大核心组件:关系数据库:用于主业务数据存储,提供事务型数据处理,是应用系统的核心数据存储。对接的核心组件,例如数据库系统与缓存系统或搜索系统间的数据对接。也用于数据的实时提取,在 线存储到离线存储的实时归档。数据访问需求。实时分析的能力.流计算:对非结构化数据和结构化数据进行流式数据分析,低延迟产出实时视图。派生数据体系在数据系统架构中,我们可以看到会存在多套存储组件。对于这些存储组件中的数据,有些是来自应用的直写,有些是来自其他存储组件的数据复制.例如业务关系数据库的数据通常是来自业务,而高速缓存和搜索引擎的数据,通常是来自业务数据库的数据同步与复制。不同用途的存储

4、组件有不同类型的上下游数据链路,我们可以大概将其归类为主存储和辅存储两类,这两类存储有不同的设计目标,主要特征为:主存储:数据产生自业务或者是计算,通常为数据首先落地的存储。ACID 等事务特性可能是强需求, 检索和分析做优化。为何会有主存储和辅存储的存在?能不能统一存储统一读写,满足所有场景的需求呢?目前看还没有 ,存储引擎的实现技术有多种,选择行存还是列存,选择B+tree 还是 LSMtree,存储的是不可变数据、频繁更新数据还是时间分区数据,是为高速随机查询还是高吞吐扫描设计等等。数据库产品目前也是分两类, TP 和 AP,虽然在往 HTAP 方向走,但实现方式仍然是底层存储分为行存和

5、列存。数仓也是主与辅的关系,在线数据库内数据集中复制到数仓来提供高效的BI上图我们可以看到几个常见的数据复制方式:应用层多写这是实现最简单、依赖最少的一种实现方式,通常采取的方式是在应用代码中先向主存储写数据,后向 一是很难保证主与辅之间的数据一致性,无法处理数据写入失效问题;二是数据写入的消耗堆积在应用层, 加重应用层的代码复杂度和计算负担,不是一种解耦很好的架构;三是扩展性较差,数据同步逻辑固化在代 异步队列复制这是目前被应用比较广的架构,应用层将派生数据的写入通过队列来异步化和解耦。这种架构下可将主 存储和辅存储的数据写入都异步化,也可仅将辅存储的数据写入异步化.第一种方式必须接受主存储

6、可异步 CDC(Change Data Capture)技术这种架构下数据写入主存储后会由主存储再向辅存储进行同步 ,对应用层是最友好的,只需要与主存储打交道。主存储到辅存储的数据同步,则可以再利用异步队列复制技术来做。不过这种方案对主存储的能力 有很高的要求,必须要求主存储能支持CDC 技术。一个典型的例子就是MySQL+Elasticsearch 的组合架构, ElasticsearchMySQLbinlogbinlogMySQLCDC派生数据体系是一个比较重要的技术架构设计理念,其中CDC 技术是更好的驱动数据流动的关键手段。具备CDC了数据一致性设计的复杂度,从而来面向高速迭代设计。可

7、惜的是大多数存储组件不具备 CDC 技术,例如HBase。而阿里云 TablestoreCDC,CDCMySQL+ElasticsearchHBase+Solr大问题是,在解决CDC存储组件的选型架构师在做架构设计时,最大的挑战是如何对计算组件和存储组件进行选型和组合,同类的计算引擎的 差异化相对不大,通常会优先选择成熟和生态健全的计算引擎,例如批量计算引擎 Spark 和流计算引擎FlinkSQL和NoSQLNoSQL下又根据各类数据模型细分为多类、对象存储、文件存储和高速缓存等不同类别。带来存储选型复杂度的 析等需求。有一些经验可以分享给大家:数据模型和查询语言仍然是不同数据库最显著的区别

8、,关系模型和文档模型是相对抽象的模型,而类 那选择范围能缩小点。)未知需求的扩展性更重要。另外关于数据存储架构,我认为最终的趋势是:数据一定需要分层数据最终的归属地一定是OSS结构化大数据存储关键需求大规模数据存储入和输出,必须要能支撑PB高吞吐写入能力ETL须能支撑高吞吐的数据写入,通常会采用一个为写入而优化的存储引擎。丰富的数据查询能力手段就是缓存和索引,其中索引的支持是多元化的,面向不同的查询场景提供不同类型的索引。例如面向固 B+treeRtreeBKDtree存储和计算成本分离的大数据系统下,存储计算分离才能完全发挥优势。存储计算分离在分布式架构中,最大的优势是能提供更 灵活的存储和

9、计算资源管理手段,大大提高了存储和计算的扩展性。对成本管理来说,只有基于存储计算分离架构实现的产品,才能做到存储和计算成本的分离。存储和计算成本的分离的优势,在大数据系统下会更加明显。举一个简单的例子,结构化大数据存储的存储量会随着数据的积累越来越大,但是数据写入量是相对平稳的。所以存储需要不断的扩大,但是为了支撑数据写入或临时的数据分析而所需的计算资源,则相对来说比较固定,是按需的。数据派生能力一个完整的数据系统架构下,需要有多个存储组件并存.并且根据对查询和分析能力的不同要求,需要在数据派生体系下对辅存储进行动态扩展 .所以对于结构化大数据存储来说,也需要有能扩展辅存储的派生能力,来扩展数

10、据处理能力。而判断一个存储组件是否具备更好的数据派生能力,就看是否具备成熟的 CDC 技术。计算生态数据的价值需要靠计算来挖掘,目前计算主要划为批量计算和流计算.对于结构化大数据存储的要求, 一是需要能够对接主流的计算引擎,例如 SparkFlink力,将自身数据转换为面向分析的列存格式存储至数据湖系统;三是自身提供交互式分析能力,更快挖掘数据价值.满足第一个条件是最基本要求,满足第二和第三个条件才是加分项。开源产品HBaseCassandra,CassandraWideColumn类别下排名 Top1 的产品,在国外应用比较广泛 .但这里我们重点提下 HBase,因为在国内的话相比Cassa

11、ndraHBaseHDFS 的存储计算分离架构的WideColumn数据存储,它的优点为:存储计算分离架构:底层基于 HDFSSparkLSM社区很成熟,对接几大主流的计算引擎。HBase 有其突出的优点,但也有几大不可忽视的缺陷:查询能力弱提供高效的单行随机查询以及范围扫描,复杂的组合条件查询必须使用Scan+Filter 的方式,稍不注意就HBasePhoenixMySQL合最左匹配的查询条件才能做索引优化,可被优化的查询条件非常有限。数据派生能力弱CDCHBaseCDCHBase Replication CDC 的能力,但是仅为HBaseReplicationHBase 的CDC 技术,

12、例如用于和SolrLily 和机制上分析就没法做到CDC成本高,HBaseCPU CPU要达到完全的存储与计算成本分离,只有云上的Serverless运维复杂HBaseHadoopZookeeperHDFS,没有专业的运维团队几乎无法运维。热点处理能力差HBaseRange PartitionHash PartitionHBase 提供了大量的最佳实践文档来指引开发者在做表的Rowkeyhash key,salted-tableRegionSplitMove国内的高级玩家大多会基于HBaseHBase根据自身业务查询特色研发自己的索引方案,例如自研二级索引方案、对接 Solr 做全文索引或者是

13、针对区bitmapTablestoreTablestore 是阿里云自研的结构化大数据存储产品,具体产品介绍可以参考官网以及权威指南。Tablestore 的设计理念很大程度上顾及了数据系统内对结构化大数据存储的需求,并且基于派生数据体系这个设计理念专门设计和实现了一些特色的功能。设计理念Tablestore 的设计理念一方面吸收了优秀开源产品的设计思路,另一方面也是结合实际业务需求演化出了一些特色设计方向,简单概括下Tablestore 的技术理念:存储计算分离架构:采用存储计算分离架构,底层基于飞天盘古分布式文件系统,这是实现存储计算成本分离的基础。LSM:LSMB+treeLSM好的支持

14、数据冷热分层。Serverless 产品形态:基于存储计算分离架构来实现成本分离的最关键因素是Serverless 服务化,只有 Serverless而平时可能仅需要比较小的计算能力,计算资源要足够的弹性.另外在派生数据体系下,主存储和辅存储通 资源弹性可调。多元化索引,提供丰富的查询能力:LSM 引擎特性决定了查询能力的短板,需要索引来优化查询。而不同的查询场景需要不同类型的索引,所以 Tablestore 提供多元化的索引来满足不同类型场景下的数据查询需求。CDCTablestoreCDCTunnel ServiceFlink拥抱开源计算生态:除了比较好的支持阿里云自研计算引擎如MaxCo

15、mputeData Lake AnalyticsFlinkSpark流批计算一体:能支持Spark 对表内全量数据进行批计算,也能通过CDC 技术对接 Flink 来对表内新增数据进行流计算,真正实现批流计算结合。多元化索引Tablestore据分析,提供基本的统计聚合函数,两种索引的对比和选型可参考这篇文章。通道服务通道服务是 TablestoreCDC够被利用在异构存储间的数据同步、事件驱动编程、表增量数据实时订阅以及流计算场景 .目前在云上TablestoreBlinkBlink 的stream source大数据处理架构大数据处理架构是数据系统架构的一部分,其架构发展演进了多年,有一些基本的核心架构设计思路产LambdaLambdaKappa、Kappa+等新架构来部分解决 Lambda 架构中存在的一些问题 ,详情介绍可以看下这篇文章的介绍.Tablestore 基于CDCLambda 架构设计了一个全新的Lambda plusLambda plus 架构Lambda逻辑分别在流和批系统中实现,并且在查询阶段合并流和批的计算视图并展示给用户。基于Tablestore TablestoreBlinkBlinkstream so

温馨提示

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

评论

0/150

提交评论