乐趣区

关于大数据:全面解析湖仓一体与大数据演进历程|内含技术工具选型策略

云智慧 AIOps 社区是由云智慧发动,针对运维业务场景,提供算法、算力、数据集整体的服务体系及智能运维业务场景的解决方案交换社区。该社区致力于流传 AIOps 技术,旨在与各行业客户、用户、研究者和开发者们独特解决智能运维行业技术难题,推动 AIOps 技术在企业中落地,建设衰弱共赢的 AIOps 开发者生态。

大数据架构的演进历程

对于大部分人来说,大数据架构所波及的概念及术语繁多且简单。如何将这些凌乱的词汇转化为有机思维,使其能够通过横向切面、纵向切片的形式出现进去是咱们必须思考的一个问题。本章将通过对大数据外围架构类型进行梳理,以及通过对不同阶段根底选型工具的解说,带大家具体理解大数据架构的演进历程。

基础知识介绍

MPP 架构 & 分布式架构

  • MPP 架构

MPP 大规模并行处理构造 (Massivly Parallel Processing)指将工作并行扩散到多个 SMP 节点,每个节点计算实现后,将各自局部的后果汇总在一起失去最终的后果。

因为 MPP 在数据库畛域利用较为宽泛,所以在事务一致性方面要求比拟高。从总体来讲,MPP 的一致性 > 可靠性 > 容错性。在内部的一些状况下,在能保障 MPP 一致性的时候必须保障一致性,否则就失去了数据库定位的这个实质。

  • 分布式架构

分布式架构(Hadoop 架构 / 批处理架构)指集群中各节点实现自治,即独立运行部分利用;MPP 架构无奈做到节点自治,它只能作为整体对外提供服务。分布式架构(Hadoop 架构 / 批处理架构)集群中各节点实现自治,即独立运行部分利用;MPP 架构无奈做到节点自治,它只能作为整体对外提供服务。

分布式架构更多关注的是“分而治之”,它要保障的是整体节点之间的一个均衡,所以从整体优先级来讲,分布式架构的容错性 > 可靠性 > 一致性。

总体来讲,咱们平时理解到的分布式架构个别指的就是 Hadoop 系列,集群以及一些数据库则指的是 MPP。

OLAP 面向数据仓库与 OLTP 面向事务数据库

在线剖析解决 OLAP(On-Line Analytical Processing)利用于数据仓库畛域,反对简单查问的数据分析,侧重于为业务提供决策反对(DSS);在线事务处理 OLTP(On-Line Transaction Processing)利用于在线业务交易系统,反对频繁的在线操作(增删改)、事务个性。

总体来讲,OLAP 侧重于事务的计算、BI 剖析、智能决策;而 OLTP 更多地是保障事务的一致性,比方在线交互零碎中的增删改操作。

分布式架构如何“拆层”

分布式架构分为分布式音讯队列层、分布式计算引擎层、分布式存储架构层以及分布式 SQL 引擎层和分布式配置管理层。本章中的数据架构侧重点则会对立集中在分布式计算、分布式存储和分布式 SQL 引擎三大块,上面咱们将从分布式存储切入解说。

Hadoop 生态环境

因为上述所说的分布式架构和批处理均是基于 Hadoop 生态环境,所以上文所形容的分层逻辑也能够套在 Hadoop 生态中。底层 HDFS 就是方才所说的分布式存储,中间层 MapReduce 就是分布式计算,而 Hive 指的就是分布式 SQL。

作为一个先驱型的技术工具,Hadoop 被广泛应用于业界各个领域之中。2004 年 Hadoop 公布了第一个版本,即 HDFS 和 MapReduce,直到 2011 年 Hadoop 1.0.0 版本正式公布,在此期间,HDFS 和 MapReduce 也实现了之前基于 MPP 数据库做不到的那些能力,比方多少个节点计算多少个数据量。时间跨度从 2011 年至 2016 年,版本跨度从 1.0.1 到 2.7.0,短短五年工夫,Hadoop 更新了将近 3 个大版本,这段期间能够说是 Hadoop 的暴发期。而从 2017 年到 2021 年,Hadoop 只逾越了 3 个小版本,即从 3.0.0 到 3.3.1。从上述的版本公布频率咱们能够看到 Hadoop 生态系统是始终在继续一直地欠缺。

MPPDB 与 Hadoop、传统数仓库个性比照

上面咱们将对 MPPDB 与 Hadoop 以及传统数仓库进行横向比照。MPP 对应的是数据库,Hadoop 对应的是分布式集群,两者之间是有共性的。从存储侧来讲,MPP 的运维复杂度、扩大能力以及运维老本等个性根本都处于中等,而 Hadoop 整体的性能都是比拟劣势的,但因为 Hadoop 对技术的要求较高,所以对于一些初创公司或者技术积淀有余的一些企业,也是一种挑战。

MPP 次要实现两个性能点,一是打消共享资源,二是反对并行计算。MPP 并行构造加上 HDFS 分布式存储,原则上就是一个基于 Hadoop 生态的 Hive 分布式 SQL,达到了方才所说基于 HDFS 并行处理的分布式架构能力。

总体来讲,MPP 和 Hadoop 之间既有关联又有区别,区别的唯一性就是 Hadoop 有自已残缺的生态。

实时计算类选型个性比照

ClickHouse 是基于 OLAP 场景需要登程,全新的、MPP 架构格调的高效列式数据库管理系统,实现了数据有序存储、主键索引、稠密索引、数据 Sharding、数据 Partitioning、TTL、主备复制等丰盛性能,属于剖析型数据库。

Elasticsearch 是一个分布式、高扩大、高实时的搜寻与数据分析引擎。它能很不便的使海量数据具备搜寻、剖析和摸索的能力。通过充分利用 Elasticsearch 的程度伸缩性,使价值密度极低的海量数据在生产环境变得更有价值。

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用 HBase 技术可在便宜 PC Server 上搭建起大规模结构化存储集群。

Druid 是一个为 OLAP 查问需要而设计的开源大数据系统,Druid 提供低延时的数据插入、实时的数据查问能力。

分布式 SQL 引擎个性比照

Spark(SQL on Hadoop)中应用 Scala 语言开发的类 MapReduce 通用并行框架,领有 MapReduce 所具备的长处,专为大规模数据处理而设计的、疾速通用的计算引擎。

注:MapReduce 面向磁盘、Spark 面向内存。

大数据架构历程

  • 批式架构

批式大数据架构也称离线大数据架构,具备大数据处理能力,但数据处理的时效性太差。

  • 流式架构

流式大数据架构相比批式大数据架构,删除了 ETL 过程、通过数据通道失去数据流,以音讯队列的形式将处理结果推送至数据消费者;舍弃了离线批量解决模式,但数据保留周期较短;若历史数据场景或简单数据场景参加计算时,实现难度十分大。

  • Lambda 架构

Lambda 数据架构在批式大数据架构根底上减少了实时计算的链路,由数据服务层实现离线与实时后果的合并,流解决计算指标时,批处理仍然计算,最终以批处理为准,即每次批处理计算后会笼罩流解决的后果。

  • Kappa 架构

Kappa 数据架构在 Lambda 架构根底上进行了优化,删除了批处理层(Batch Layer)的架构,将数据通道以音讯队列进行代替;应用流式重新处理历史数据的吞吐能力会低于批处理,须要减少计算资源来补救。

  • 实时 OLAP 架构

实时 OLAP 变体架构是对 Kappa 数据架构的进一步演变,是将聚合剖析计算由 OLAP 引擎承当,加重实时计算局部的聚合解决压力。

  • 长处:自由度高,满足数据分析师的实时自助剖析需要,加重了计算引擎的解决压力。
  • 毛病:音讯队列中保留了存量数据,于是将计算局部的压力转移到了查问层。

数据架构个性比照

下图为具备演进相关性的 Lambda、Kappa、实时 OLAP 变体架构比照。

如何了解湖仓一体

湖仓一体架构演进史

湖仓一体首先就是数据仓库,它要做的是把数据进行分层,须要将数据先荡涤再入仓,此时,所有的数据曾经失去了本来的价值;而数据湖是将数据先入库,随后再依据业务须要对数据进行加载转化,其长处在于保障需要变动的同时,任何的数据在底层仍然能够存储下来,这也是数据湖的一个价值这也是数据湖的重要价值。

而湖仓一体就是将数据湖与数据仓库进行联合,数据湖是对存储层数据多样化能力的欠缺。

  • ETL 抽取 - 转换 - 加载(Extract-Transform-Load),先荡涤(耗费内存)再入库。
  • ELT 抽取 - 加载 - 转换(Extract-Load-Transform),先入库(长期表)再荡涤。

数据湖与数据仓库的互补关系

数据湖自身反对多种计算引擎以及存储计算拆散,保障了存储的时候数据是残缺的,计算的时候和存储齐全没关系,能够依照计算需要去加载数据。而数据仓库仍然放弃面向主题、面向集成、稳定性以及动态性。

技术工具选型策略

湖仓一体设计时须要思考以下因素;

  • 是否满足业务需要:技术选型并非只要求大而全,而是依据业务需要进行匹配,抉择性能覆盖度最合适的;
  • 关注成熟度 / 风行度:联合开源社区活跃度,具体可查看 Github Star 数;
  • 技术栈落地老本:联合架构复杂度及已有开发教训,把控应用老本;
  • 技术栈一致性:联合本公司技术栈的一致性、相关性,即代码易维护性;
  • 业界应用案例:复用后任厂商的填坑教训

下图为各技术工具成熟度 / 风行度数据列表:

数据湖工具选型个性比照

Hudi(Hadoop Upserts anD Incrementals)是基于 Spark2.x 治理存储在 HDFS 上的大型剖析数据集,反对在 Hadoop 上执行诸如更新、插入和删除之类的操作,反对:读优化表(Read Optimized Table)和近实时表(Near-Real-Time Table)。

Iceberg 是一个面向海量数据分析场景的凋谢表格局 (Table Format). 定义中所说的表格局(Table Format), 能够了解为元数据以及数据文件的一种组织形式, 处于计算框架(Flink, Spark…) 之下, 数据文件之上。

Delta Lake 是一个存储层,为 Apache Spark 和大数据 Workloads 提供 ACID 事务能力,其通过写和快照隔离之间的乐观并发管制(Optimistic Concurrency Control),在写入数据期间提供一致性的读取,从而为构建在 HDFS 和云存储上的数据湖(Data Lakes)带来可靠性。

湖仓一体蓝图计划

基于 Hadoop 的 HDFS 存储,不仅能够存储结构化数据,还能够存储非结构化数据,并且对于历史数据和实时数据,在 Hive 上能够进行全量存储和当前的数据回溯。

湖仓一体计划预研理由

  • Hudi 集成能力:Hudi 领有良好的 Upsert 能力以及反对对接 Flink 增量解决的框架。
  • Flink 技术积淀:云智慧本人保护了局部 Flink 引擎开发,已撑持数据产品的实时计算。
  • 应答突发需要:对于突发的业务需要,可应用即席查问 Presto 满足查问。
  • 满足近期指标:反对实时获取数据到 Hive,间隔时间在分钟级别,并反对 Upsert。

理解更多

云智慧以开源集轻量级、聚合型、智能运维为一体的综合运维治理平台 OMP(Operation Management Platform),具备纳管、部署、监控、巡检、自愈、备份、复原等性能,可为用户提供便捷的运维能力和业务管理,在进步运维人员工作效率的同时,极大晋升业务的连续性和安全性。

点击下方地址链接,欢送大家给 OMP 点赞送 Star,理解更多相干内容~

GitHub 地址:https://github.com/CloudWise-OpenSource/OMP

Gitee 地址:https://gitee.com/CloudWise/OMP

退出移动版