接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(17)
所属章节:
第19章. 大数据架构设计理论与实践
第5节 Lambda架构与Kappa架构的对比和设计选择
19.5.2 Lambda架构与Kappa架构的设计选择
根据Lambda与Kappa两种架构的对比分析,将业务需求、技术要求、系统复杂度、开发维护成本和历史数据处理能力作为选择考虑因素。而计算开销虽然存在一定差别,但相差不是很大,因此不作为考虑因素。
1. 业务需求与技术要求
用户需要根据自己的业务需求来选择架构,如果业务对于Hadoop、Spark、Storm等关键技术有强制性依赖,则选择Lambda架构可能较为合适;如果处理数据偏好于流式计算,又依赖于Flink计算引擎,那么选择Kappa架构可能更为合适。
2. 复杂度
如果项目中需要频繁地对算法模型参数进行修改,Lambda架构需要反复修改两套代码,则显然不如Kappa架构简单方便。同时,如果算法模型支持同时执行批处理和流式计算,或者希望用一份代码进行数据处理,那么可以选择Kappa架构。
在某些复杂的案例中,其实时处理和离线处理的结果不能统一,比如某些机器学习的预测模型,需要先通过离线批处理得到训练模型,再交由实时流式处理进行验证测试,那么这种情况下,批处理层和流处理层不能进行合并,因此应该选择Lambda架构。
3. 开发维护成本
Lambda架构需要有一定程度的开发维护成本,包括两套系统的开发、部署、测试、维护,适合有足够经济、技术和人力资源的开发者。而Kappa架构只需要维护一套系统,适合不希望在开发维护上投入过多成本的开发者。
4. 历史数据处理能力
有些情况下,项目会频繁接触海量数据进行分析,比如过往十年内的地区降水数据等,这种数据适合批处理系统进行分析,应该选择Lambda架构。如果始终使用小规模数据集,流处理系统完全可以使用,则应该选择Kappa架构。
至此,“19.5.2 Lambda架构与Kappa架构的设计选择”的全部内容就讲解完了。“19.5 Lambda架构与Kappa架构的对比和设计选择”的全部内容也就讲解完了。