实时数仓架构
实时数仓的架构因应不同需求和场景而有所不同,但主要有两种常见的技术架构:Lambda 和 Kappa。
-
Lambda 架构:
- Lambda 架构是一种较早的实时数仓架构,它结合了批处理和流处理。
- 下面是 Lambda 架构的主要组件和流程:
- 数据源通过 Kafka、Flume 等组件进行收集。
- 数据分成两条线进行计算:
- 一条线进入流式计算平台(例如 Storm、Flink 或 Spark Streaming),计算实时指标。
- 另一条线进入批量数据处理离线计算平台(例如 MapReduce、Hive、Spark SQL),计算 T+1 的相关业务指标,这些指标需要隔夜才能查看。
- Lambda 架构之所以分成两条线计算,是为了解决用户等待计算结果的延迟问题。如果只有一个批处理层,用户可能需要等待几个小时才能获取计算结果。
- Lambda 架构的优点包括稳定性和可控的实时计算成本。然而,它也存在一些缺点,例如维护两套复杂的分布式系统和开发周期较长。
-
Kappa 架构:
- Kappa 架构是在 Lambda 架构的基础上简化而来,它只关注流式计算,去除了离线批处理部分。
- Kappa 架构的核心思想是直接使用流处理引擎(如 Apache Flink、Kafka Streams)来满足实时计算需求。
- Kappa 架构的优点包括简单性、实时性更好以及所需的计算资源较少。
- 尽管 Kappa 架构适用于某些场景,但并不意味着它可以完全取代 Lambda 架构。两者各有适用领域,具体情况需根据业务需求来选择¹²³⁴.
Source: Conversation with Bing, 3/31/2024 (1) 数仓建设 | 图文详解实时数仓的两种技术架构Lambda和Kappa - 知乎. https://zhuanlan.zhihu.com/p/539247209. (2) 实时数仓架构 - 知乎 - 知乎专栏. https://bing.com/search?q=%e5%ae%9e%e6%97%b6%e6%95%b0%e4%bb%93%e7%9a%84%e6%9e%b6%e6%9e%84. (3) 离线和实时数仓技术架构梳理 - 百度智能云. https://cloud.baidu.com/article/2860688. (4) 实时数仓架构 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/412232339. (5) 实时数仓当前主流架构(精简总结收藏!!) - CSDN博客. https://blog.csdn.net/CLKTOY/article/details/120433175.