文章目录
比较总览
- Lambda architecture uses separate batch and stream processing systems, making it scalable and fault-tolerant but complex to set up and maintain (as it duplicates processing logic).
- Kappa architecture simplifies the pipeline with a single stream processing system as it treats all data as streams, providing flexibility and ease of maintenance, but requires experience in stream processing and distributed systems.
Lambda architecture is well-suited when companies have mixed requirements for stream and batch processing, e.g., for real-time analytics and multiple batch processing tasks or
data lakes
, while Kappa architecture is ideal for continuous data pipelines, real-time data processing, and IoT systems.
一. Data Processing Architectures
数据处理架构被设计为处理数据摄入、处理、以及存储大数据量。这使得组织可以从数据中分析、抽取出有价值的洞察,这帮助他们提高决策,优化操作以及驱动生长。
如下有lamba和kappa架构,都可用于处理不同类型的数据。企业需要考虑他们的数据处理需求,以便找到合适的架构来实现他们的目标和需求。
1. Lambda Architecture
1.1. 架构说明
lambda架构提供了一个用于处理大数据的可拓展、容错和灵活的系统,这是Nathan Marz在2011提出的,主要用于解决处理实时需求。
lamba架构使用两个处理系统来处理实时和离线任务。离线系统处理批数据,并存储在例如数据仓库,或分布式文件系统中。实时系统用于处理实时数据,并存储在分布式数据层。
lamba架构中,有四层,用于处理和存储大数据,如下:
a. Data Ingestion Layer
这层用于收集和存储数据,比如log日志,传感器、消息队列和API等。数据通常是实时摄取的,并同时被送入批处理层和速度层。
b. Batch Layer (Batch processing)
批处理层用于处理大数据并存储到数据仓库、或分布式文件系统中。此层可以使用hadoop或spark来处理数据。批处理层用于处理大数据,并提供所有数据的完整视图。
c. Speed Layer (Real-Time Data Processing)
速度层用于处理实时数据,并存储到例如消息队列或者NoSQL数据库中。此层可以使用FLink或storm。流数据层用于处理大数据流,并提供最新的数据视图。
d. Serving Layer
服务层是 Lambda 架构的一个组件,负责实时向用户提供查询结果。通常作为批处理层和流处理层之上的一层实现。它通过查询层访问,该层允许用户使用查询语言(例如 SQL 或 Apache Hive 的 HiveQL)查询数