---
name: streaming-lakehouse
description: 实时与湖仓深挖：开放表格式、CDC、流处理状态与一致性、批流一体、数据新鲜度、成本。
keywords: [湖仓, lakehouse, iceberg, delta, hudi, 表格式, cdc, debezium, flink, 流处理, exactly once, 批流一体, 数据新鲜度, kafka, trino, 存储格式, parquet, 成本优化]
layer: detail
domains: [data-engineering]
---

## 面试官在意什么

这本是数据工程往实时与湖仓方向的深挖。2026 年的面试重点：表格式（Iceberg 一类）为什么成了标准、解决了什么（ACID、schema 演进、时间旅行、跨引擎）；CDC 到湖的链路怎么保证一致；流处理的状态、水位、exactly-once 到底靠什么；批流一体是真统一还是两套代码；AI 场景要多新鲜的数据、代价多大。面试官追的是一次数据不一致或延迟事故的归因。

## 项目 / 实习怎么深挖

简历上出现下面这类经历时从哪里切、追什么。追到候选人能说出机制、数字的来源与一次真实的故障或取舍才算实；只有框架名与结论、说不出自己那一段的，记为危险信号。通用的追问方法见 project-deep-dive。

- 简历出现 Iceberg / Delta / Hudi → 追为什么选它、schema 演进与时间旅行用过没有、小文件与 compaction 怎么治、跨引擎读写有没有问题
- 简历出现 CDC → 追工具与链路、初始快照与增量怎么衔接、乱序与重复怎么处理、延迟多少
- 简历出现 Flink / 流处理 → 追状态大小、checkpoint 间隔、水位怎么定、exactly-once 靠什么、反压怎么排查
- 简历出现批流一体 → 追是一套代码还是两套、口径怎么对齐、修数怎么做
- 简历出现"实时" → 追端到端延迟数字、新鲜度 SLA 谁定、超了怎么办
- 简历出现湖仓成本 → 追存储与计算各多少、小文件、分区与排序对查询的影响

## 常见失守与危险信号

- 实时链路与流处理：说不出水位与事件时间；exactly-once 只会说"Flink 支持"；反压不知道怎么看
- 存储格式与湖仓：不知道列式格式为什么快；表格式只答"就是元数据"；小文件问题没处理过
- 成本与性能优化：只会加机器；不知道分区与排序对扫描量的影响
- 开放表格式：说不出快照与元数据层的结构；schema 演进没用过；compaction 拍脑袋
- CDC 链路：初始快照与增量衔接说不清；乱序与重复没处理；延迟没数字
- 流处理状态与一致性：状态放哪、多大不知道；checkpoint 失败没处理过；端到端一致性说不清
- 批流一体：两套代码口径对不上；修数靠人肉
- 数据新鲜度与 AI 场景：不知道下游要多新鲜；新鲜度没有 SLA 与监控

## 常考主题清单

只列名字、阶梯与答实的标志，作"问到哪一层算实"的参考；问哪些、问几道由这份 JD 与这份简历定，不是配额。

### 实时链路与流处理
- 阶梯：实时和离线各自解决什么，Lambda 与 Kappa 差异 → Flink 的 checkpoint、状态、watermark 分别做什么 → 实时指标与离线对不上、迟到数据、乱序、状态膨胀怎么处理 → 端到端 exactly-once 的代价，什么场景 at-least-once + 幂等就够
- 答实的标志：能列出差异来源（迟到、去重口径、维表更新时机、时区）；理解状态 TTL；知道下游 sink 的幂等或事务写入才是端到端一致的关键

### 存储格式与湖仓
- 阶梯：Parquet/ORC 为什么适合分析 → 列式存储、压缩、谓词下推的原理 → 湖仓表（Iceberg/Hudi/Paimon）解决 Hive 表哪些痛点（ACID、schema 演进、小文件、时间旅行）→ 从 Hive 迁到湖仓的收益、成本与风险
- 答实的标志：理解快照、元数据文件与小文件治理的关系；schema 演进对下游影响；流式 upsert 场景的适配性

### 成本与性能优化
- 阶梯：数据平台成本花在哪（存储、计算、调度空转）→ 冷热分层、生命周期、压缩、任务合并各省什么 → 集群账单月涨 40% 怎么归因到具体任务和负责人 → 降本与 SLA、开发效率的冲突怎么协调
- 答实的标志：按任务/表归因成本；识别无人访问的表与重复计算；生命周期策略；把降本量化并跟踪

### 开放表格式
- 阶梯：为什么在对象存储上还要一层表格式 → 快照、元数据文件、manifest 的结构；ACID、schema 演进、分区演进、时间旅行各怎么实现 → 小文件与 compaction、并发写冲突、跨引擎读写一致性怎么处理 → Iceberg / Delta / Hudi 的差别与选型；目录服务的作用
- 答实的标志：能画出快照与元数据的层次；有 compaction 策略与数字；知道并发写冲突怎么解

### CDC 链路
- 阶梯：CDC 解决什么、为什么优于定时全量 → 日志解析（binlog / WAL）、初始快照与增量的衔接、schema 变更怎么传 → 乱序、重复、删除事件怎么在下游处理；延迟怎么量 → 写湖的方式（追加、upsert、merge on read vs copy on write）与代价
- 答实的标志：初始快照与增量衔接有方案；乱序与重复有处理；知道 upsert 到湖的两种实现与取舍

### 流处理状态与一致性
- 阶梯：事件时间、处理时间、水位各是什么，迟到数据怎么办 → 状态放哪、多大、checkpoint 与 savepoint 的差别 → exactly-once 到底靠什么（checkpoint + 两阶段提交 sink），哪些 sink 做不到 → 反压怎么排查（算子级指标）；状态膨胀与 TTL
- 答实的标志：能说出端到端一致性的组成；有 checkpoint 失败或反压的排查案例；知道状态 TTL

### 批流一体
- 阶梯：批与流为什么会口径不一致 → 一套逻辑两种执行（同一 SQL 跑批与流）能做到什么程度 → 修数（回刷）在流场景怎么做；lambda 与 kappa 的取舍 → 批流一体的真实成本；什么场景值得
- 答实的标志：知道口径不一致的来源；有修数方案；能说出统一与不统一的取舍

### 数据新鲜度与 AI 场景
- 阶梯：下游（看板、特征、Agent、检索索引）各要多新鲜 → 新鲜度怎么定义与测量（端到端延迟、水位滞后）→ 新鲜度 SLA 超了怎么告警与降级；成本随新鲜度怎么涨 → 向量索引、特征平台对数据链路的新要求
- 答实的标志：有新鲜度数字与 SLA；知道成本曲线；能说出 AI 下游对链路的具体要求
