Lambda架构
2018-06-15 本文已影响118人
何约什
Lambda是实时处理框架Storm的作者Nathan Marz提出的用于同时处理离线和实时数据的架构理念。Lambda架构(LA)旨在满足一个稳定的大规模数据处理系统所需的容错性、低延迟、可扩展的特性。LA的可行性和必要性基于如下假设和原则。
- 任何数据系统可定义为:query=functional(all data)。
- 人为容错性(Human Fault-Tolerance):数据是易丢失的。
- 数据不可变形(Data Immutability):数据是只读的,不再变化。
- 重新计算(Recomputation):因为上面两个原则,运行函数重新计算结果是可能的。
该架构具有如下特点。
- 所有数据分别分发到批处理层和实时处理层。
- 批处理层有两个功能:管理主要的数据(该类数据的特点是只能增加,不能更新);为下一步计算出批处理视图做预计算。
- 服务层计算出批处理视图中的数据做索引,以提供低延时,即席查询。
- 实时处理层仅处理实时数据,并为服务层提供查询服务。
- 任何查询都可以通过实时处理层和批处理层的查询结果合并得到。