第3章 实时数仓基础概念与架构面试

本章聚焦实时数仓从离线到实时演进的底层逻辑、Lambda与Kappa架构的核心差异,以及技术栈选型的关键考量。掌握这些内容,你将能够从容回答架构类面试题,并展示对实时治理场景的深度理解。

实时数仓架构对比 数据通路 批/流分离 vs 统一 一致性模型 最终一致 vs 强一致 运维复杂度 高维护 vs 低维护 适用场景 批流混合 vs 纯实时 选型建议 按实时性/成本权衡

面试问答卡片

问题1:请简述实时数仓的演进历程。

面试官考察点
对实时数仓历史脉络的宏观理解;是否具备从离线到实时的演进思维。
回答框架
  1. 起点:传统离线数仓(T+1);
  2. 演进:Lambda架构(批+流两条链路);
  3. 简化:Kappa架构(纯流处理,统一管道);
  4. 当前:实时湖仓一体(Hudi/Iceberg + Flink)。
简短示例回答
实时数仓最初以离线T+1为主,后出现Lambda架构(批处理+流处理并行)。为降低维护成本,Kappa架构取消批链路,全部基于流处理。当前趋势是实时湖仓一体,用Flink写入Hudi/Iceberg,实现统一存储与近实时分析。
可能追问
  • Lambda架构中的数据一致性如何保证?
  • Kappa架构如何处理历史数据回溯?
避坑提醒
不要只罗列架构名称,要解释每种架构解决的核心痛点(如Lambda解决时效与历史,Kappa解决复杂度)。

问题2:请比较Lambda架构和Kappa架构。

面试官考察点
架构选型的分析能力;对批流融合、数据一致性的理解深度。
回答框架
  1. 数据通路:Lambda批+流两条线,Kappa只用流;
  2. 一致性:Lambda双链路需合并(最终一致),Kappa单链路易实现强一致;
  3. 复杂度:Lambda运维重(两套代码/存储),Kappa轻量;
  4. 场景:Lambda适合批流混合强历史回溯,Kappa适合纯实时低延迟。
简短示例回答
Lambda架构维护批流两套代码,逻辑重复且易出现不一致;Kappa统一为流处理管道,简化运维。但Lambda在回溯历史数据时直接从批存储重跑,Kappa需调整时间窗口或重放Kafka数据。当前推荐Kappa+湖存储实现回溯。
可能追问
  • Kappa架构如何支持Exactly-Once语义?
  • 实际项目中你更倾向哪种?为什么?
避坑提醒
避免空谈理论,应结合业务实时性要求和数据量给出选择依据。不要忽视Lambda在生产中仍广泛存在的事实。

问题3:实时数仓技术栈选型时需考虑哪些因素?

面试官考察点
技术栈广度;对组件特性、社区成熟度、运维成本的综合判断。
回答框架
  1. 实时计算:Flink vs Spark Streaming(状态管理、反压机制);
  2. 消息队列:Kafka vs Pulsar(吞吐、延迟、分区扩展);
  3. 存储层:Hudi/Iceberg vs Delta Lake(Merge-on-Read、ACID);
  4. 查询引擎:ClickHouse vs StarRocks(点查、聚合、并发);
  5. 资源与运维:云原生(K8s) vs 自建集群。
简短示例回答
首选Flink作为流计算引擎,其状态后端和Checkpoint机制成熟;消息队列选Kafka(高吞吐低延迟);存储层推荐Hudi(增量拉取兼容性好);OLAP选ClickHouse(大宽表聚合性能优异)。若团队人力不足,可考虑全托管云服务。
可能追问
  • Flink与Spark Streaming在实时数仓中的具体差异?
  • ClickHouse更新删除性能差,如何解决?
避坑提醒
不要只列举组件名称,要说明选型依据(如反压、Exactly-Once、OLAP点查)。避免推荐“万能技术”,需强调业务场景驱动。

项目案例

字段 内容
项目名称某大型电商实时数仓治理项目
业务背景支撑大促期间实时看板(GMV、UV、退款率),要求秒级延迟,数据来源包括埋点、订单、物流等10+系统。
规模指标每秒10万+事件;100+实时任务;每日处理200亿条记录;实时管道SLA 99.9%
技术栈Flink 1.15 + Kafka 3.2 + Hudi 0.12 + ClickHouse 22.8 + Prometheus+Grafana
核心难点① 大促流量洪峰导致反压,延迟飙升;② 多流Join时状态膨胀Checkpoint超时;③ 数据倾斜(热门商品哈希分区不均匀)
面试高频追问· 如何优化反压?
· 状态膨胀如何治理?
· 解决数据倾斜的常用方案?
· Hudi增量拉取如何保证一致性?
可迁移回答话术“针对反压,我们开启缓冲池、调整并行度,并利用Flink Web UI定位缓慢算子;对状态膨胀,采用增量Checkpoint和状态TTL;数据倾斜则通过二次聚合或随机前缀打散后聚合。这些治理手段可复用到其他类似场景。”
💡 学习建议: 将项目案例中的难点和话术熟记,面试时快速定位到实际项目,展现问题分析与解决能力。