赞
踩
Lambda 架构总共由三层系统组成的:批处理层(Batch Layer),速度处理层(Speed Layer),以及用于响应查询的服务层(Serving Layer)。
更详细的架构图:
批处理层:
使用可处理大量数据的分布式处理系统预先计算结果。它通过处理所有的已有历史数据来实现数据的准确性。这意味着它是基于完整的数据集来重新计算的,能够修复任何错误,然后更新现有的数据视图。输出通常存储在只读数据库中,更新则完全取代现有的预先计算好的视图。
速度层:
通过提供最新数据的实时视图来最小化延迟。速度层所生成的数据视图可能不如批处理层最终生成的视图那样准确或完整,但它们几乎在收到数据后立即可用。而当同样的数据在批处理层处理完成后,在速度层的数据就可以被替代掉了。
总结:
批处理层保证数据的完整性和准确性,速度层保证数据的时效性,但是缺点是需要维护两套逻辑代码,维护较复杂,有没有可能在批处理中实现实时计算,或者在实时处理中实现批处理计算呢?于是就有了下面的kappa架构。
与 Lambda 架构不同的是,Kappa 架构去掉了批处理层这一体系结构,而只保留了速度层。你只需要在业务逻辑改变又或者是代码更改的时候进行数据的重新处理。
借用kafka的架构来说明kappa架构:
kafka可以通过设置来决定数据的保留时长,七天、一个月、或者永久保留,且kafka是通过offset来决定从哪里读取数据,因此当我们的业务逻辑改变时,需要从新读取所有历史数据时,只需要把offset设置为0即可。
1.描述哪些数据在数据仓库中;
2.定义要进入数据仓库中的数据和从数据仓库中产生的数据;
3.记录根据业务事件发生而随之进行的数据抽取工作时间安排;
4.记录并检测系统数据一致性的要求和执行情况;
5.衡量数据质量。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。