Lambda 架构:融合批处理和实时处理


Lambda 架构和 Kappa 架构

Lambda 架构解决了将实时和批处理相结合以有效处理大数据工作负载的挑战。它采用混合方法,利用批处理和流处理来提供准确和最新的见解。


Lambda 架构的核心是不可变数据的概念。所有传入的数据都以仅追加的方式捕获和存储,从而创建未更改的历史记录。该体系结构由三层组成:

    Lambda 架构提供了几个好处。它通过跨多个层使用复制的数据来提供容错能力,从而确保数据可用性和弹性。该体系结构还支持可扩展的处理,因为每一层都可以独立扩展以处理不断增加的工作负载。此外,批处理和实时处理的分离允许有效的资源利用,因为批处理计算可以在更大的时间窗口上执行。


    Kappa 架构通过专注于流处理,提供了 Lambda 架构的简化替代方案。它包含不可变数据流的概念,无需维护单独的批处理层。


    1. 流引入:从各种源连续引入数据并存储在事件日志中,例如 Apache Kafka。事件日志充当持久、容错的存储机制,可保留事件的完整历史记录。

    2. 可伸缩性和性能:评估系统的可伸缩性要求。这两种体系结构都可以水平扩展,但特定的技术选择和实现细节可能会影响性能。考虑希望处理的数据量、速度和种类,并选择能够满足可扩展性需求的体系结构。

    3. 数据一致性:检查应用程序的一致性要求。Lambda 架构提供了用于处理批处理层和速度层之间数据一致性的内置机制。在 Kappa 架构中,由于没有批处理层,因此简化了数据一致性,但在处理无序事件或延迟到达时可能需要额外的考虑因素。

    4. 流处理:流处理层使用事件日志中的数据,应用实时计算,并生成所需的输出。像Apache Kafka Streams或Apache Flink这样的技术可用于处理和分析。

    5. 输出服务:处理后的数据可通过各种输出通道访问,例如实时仪表板、API 或数据接收器,以供进一步分析或使用。


    Lambda 架构是一种流式数据处理系统的设计模式,它将批处理和实时处理结合起来,以满足大规模数据的高效处理和渐进式计算的要求。Lambda 架构的主要特点是将数据流分成两个层次:


    1. 批处理层:用于对历史数据进行离线处理,并生成批处理视图(batch views),这些视图是预先计算好的结果,可以在查询时直接使用,以提高查询效率。


    2. 实时处理层:用于对实时数据进行处理,并生成实时视图(speed views),这些视图是即时生成的结果,可以用于实时监控、报警和分析。


    Lambda 架构的核心理念是将批处理和实时处理分别处理,然后将两者的结果合并起来,得到最终的结果。这种设计可以有效地解决大规模数据处理中的问题,例如数据延迟、数据质量、数据分布、数据去重等。Lambda 架构可以应用于多种数据处理场景,例如大规模数据分析、物联网数据处理、实时风险管理等。
















    参考资料:

    http://blog.itpub.net/70027827/viewspace-2958081/



    请使用浏览器的分享功能分享到微信等