【新版系统架构】第十九章-大数据架构设计理论与实践

2023-10-16 11:28:08 浏览数 (2)

大数据处理系统架构

大数据处理系统面临挑战

  1. 如何利用信息技术等手段处理非结构化和半结构化数据
  2. 如何探索大数据复杂性、不确定性特征描述的刻画方法及大数据的系统建模
  3. 数据异构性与决策异构性的关系对大数据知识发现与管理决策的影响

大数据处理系统架构特征

  1. 鲁棒性和容错性
  2. 低延迟读取和更新能力
  3. 横向扩容
  4. 通用性
  5. 延展性
  6. 即席查询能力
  7. 最少维护能力
  8. 可调式性

Lambda架构

Lambda架构用于同时处理离线和实时数据,可容错,可扩展的分布式系统,具备强鲁棒性和低延迟和持续更新。

Lambda架构分为三层:批处理层、加速层、服务层

批处理层核心功能:存储数据集和生成Batch View 主数据集中数据必须具备以下三个属性:数据是原始的、数据是不可变的、数据永远是真实的

Lambda架构优缺点: 优点:容错性好,查询灵活度高,易伸缩、易扩展 缺点:全场景覆盖带来的编码开销,针对具体场景重新离线训练一遍益处不大,重新部署和迁移成本很高

Kappa架构

Kappa不同于Lambda同时计算和批计算并合并视图,其只会通过流计算一条的数据链路计算并产生视图。 Kappa架构原理:在Lambda上进行优化,删除Batch Layer架构,将数据通道以消息队列进行替代,依旧以流处理为主,数据在数据湖层面进行了存储,当需要进行离线分析或者再次计算时,将数据湖的数据再次经过消息队列重播一次即可。

从使用场景看,Kappa架构与Lambda架构的两点主要区别:

  1. Kappa 不是Lambda的替代架构,是其简化版本,Kappa放弃了对批处理的支持,更擅长业务本身为增量数据写入场景的分析需求,例如各种时序数据场景,天然存在时间窗口的概念,流式计算直接满足其实时计算和历史补偿任务需求
  2. Lambda直接支持批处理,更适合对历史数据分析查询的场景,比如数据分析师需要按任意条件组合对历史数据进行探索性的分析,并且有一定的实时性需求,期望尽快得到分析结果,批处理可以更直接高效地满足这些需求

Lambda架构和Kappa架构对比

对比内容

Lambda架构

Kappa架构

复杂度与开发、维护成本

需要维护两套系统(引擎),复杂度高、开发、维护成本高

只需要维护一套系统(引擎),复杂度低、开发、维护成本低

计算开销

需要一直运行批处理和实时计算,计算开销大

必要时进行全量计算,计算开销相对较小

实时性

满足实时性

满足实时性

历史数据处理能力

批式全量处理,吞吐量大,历史数据处理能力强

流式全量处理,吞吐量相对较低,历史数据处理能力相对较弱

0 人点赞