软考 系统架构设计师系列知识点之大数据设计理论与实践(6)

时间:2024-04-16 12:47:20

接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(5)

所属章节:

第19章. 大数据架构设计理论与实践

          第3节 Lambda架构

本文部分内容参考:

Lambda架构 - 简书

特此致谢!

19.3.3 Lambda架构介绍

在讲解这一节之前要特别说明一下,这一节是去年(2023年11月)即最近一次考试下午的试题。因此,其重要性是不言而喻的。

Lambda是实时处理框架Storm的作者Nathan Marz提出的用于同时处理离线和实时数据的架构理念。Lambda架构(Lambda Architecture)旨在满足一个稳定的大规模数据处理系统所需的容错性、低延迟、可扩展的特性。LA的可行性和必要性基于如下假设和原则:

  • 任何数据系统可定义为:query=functional(all data)。
  • 人为容错性(Human Fault-Tolerance):数据是易丢失的。
  • 数据不可变形(Data Immutability):数据是只读的,不再变化。
  • 重新计算(Recomputation):因为上面两个原则,运行函数重新计算结果是可能的。

LA基本框架如图所示:

再如图19-4所示,Lambda架构可分解为三层批处理层加速层服务层

  • 批处理层(Batch Layer)

存储数据集,Batch Layer在数据集上预先计算查询函数,并构建查询所对应的ViewBatch Layer可以很好地处理离线数据,但有很多场景数据是不断实时生成且需要实时查询处理的。对于这种情况,Speed Layer更为合适。

  • 加速层(Speed Layer)

Batch Layer处理的是全体数据集,而Speed Layer处理的是最近的增量数据流。Speed Layer为了效率,在接收到新的数据后会不断更新Real-time View,而Batch Layer是根据全体离线数据集直接得到Batch View。

  • 服务层(Serving Layer)

Serving Layer用于合并Batch View和Real-time View中的结果数据集,得到最终数据集

Lambda架构具有如下特点:

  • 所有数据分别分发到批处理层和实时处理层。
  • 批处理层有两个功能:管理主要的数据(该类数据的特点是只能增加,不能更新);为下一步计算出批处理视图做预计算。
  • 服务层计算出批处理视图中的数据做索引,以提供低延时,即席查询。
  • 实时处理层仅处理实时数据,并为服务层提供查询服务。
  • 任何查询都可以通过实时处理层和批处理层的查询结果合并得到。

更多内容请看下回。