Lambda 架构解决了将实时处理和批处理相结合以有效处理大数据工作负载的挑战。它采用混合方法,利用批处理和流处理来提供准确和最新的见解。Lambda 架构的核心是不可变数据的概念。所有传入的数据都以仅追加的方式捕获和存储,从而创建未更改的历史记录。
随着大数据应用的发展,人们逐渐对系统的实时性提出了要求,为了计算一些实时指标,就在原来离线数仓的基础上增加了一个实时计算的链路,并对数据源做流式改造(即把数据发送到消息队列),实时计算去订阅消息队列,直接完成指标增量的计算,推送到下游的数据服务中去,由数据服务层完成离线&实时结果的合并。
Lambda 架构(Lambda Architecture)是由 Twitter 工程师南森·马茨(Nathan Marz)提出的大数据处理架构。这一架构的提出基于马茨在 BackType 和 Twitter 上的分布式数据处理系统的经验。
Lambda 架构使开发人员能够构建大规模分布式数据处理系统。它具有很好的灵活性和可扩展性,也对硬件故障和人为失误有很好的容错性。
Lambda 架构总共由三层系统组成:批处理层(Batch Layer)
,速度处理层(Speed Layer
),以及用于响应查询的服务层(Serving Layer)
。
- 批处理层