认识lambda架构(架构师考试复习)

Lambda架构主要分为三层,批处理层、加速层和服务层。
如下图所示:
在这里插入图片描述
(1)批处理层(Batch Layer):存储数据集,在数据集上预先计算查询函数,并构建查询对应的view。Batch Layer可以很好地处理离线数据。当很多场景需要实时查询的时候,则需要Speed Layer

(2)加速层(Speed Layer):batch layer处理的是全体数据集,speed layer处理的是增量数据流。Speed layer接收到数据后会不断更新Real-time view,而Batch Layer是根据全体离线数据集直接得到Batch View。

(3)服务层(serving layer):Serving layer用于合并Batch View 和Real-time view中的结果数据集到最终数据集。

1、批处理

批处理有两个核心功能,存储数据集和生成Batch View。该层主要负责主数据集,主数据集有以下三个属性:

(1)数据是原始的

(2)数据是不可变的

(3)数据永远真实的

2、加速层

它存储实时视图并传入数据流,以便更新这些视图。

Speed Layer和Batch Layer的区别如下:

(1)speed layer处理数据是最近的增量数据流,batch layer是全体数据集。

(2)Speed layer为了效率,接收到新数据时不断更新Real-time view,而Batch Layer是根据全体离线数据集直接得到Batch View。

分为加速层和批量层的好处有哪些?

容错性:当speed layer重新计算后,当前的real-time view就可以丢弃,而batch view也是重新计算的。

复杂性隔离:批量处理离线数据很好掌握,加速层处理增量数据隔离出来。

Scale out:横向扩展,通过增加机器来扩展,而不是增加机器性能scale up。

3、服务层

用于响应用户查询,合并batch view和real-time view中的结果集得到最终数据集。该层提供了主数据集上执行的计算结果的低延迟访问。读取速度可以通过数据附加的索引来加速。

猜你喜欢

转载自blog.csdn.net/miachen520/article/details/134935041