[toc]
大数据数仓项目自我介绍模板(可直接背、面试通用)
版本一:标准版(推荐直接用)
我主要负责大数据离线与实时数仓的设计和开发。
整体采用业界标准四层分层架构:ODS、DWD、DWS、ADS。
离线数仓基于 Hive + Spark 搭建,通过 DataX 定时同步 MySQL 业务库数据到 ODS 层,利用 Spark SQL 做分层清洗、维度建模、指标聚合,按小时和 T+1 调度,支撑日常日报、月报、用户画像、业务复盘等离线报表需求。
实时数仓采用 Flink + Kafka + Flink CDC + Doris 架构,通过 Flink CDC 实时监听 MySQL Binlog,做增量变更数据捕获,无需全量拉表,秒级延迟把业务数据实时接入 Kafka 作为 ODS 层;再用 Flink SQL 完成数据清洗、脱敏、维度关联、窗口聚合,分层加工后落地到 Apache Doris 做 ADS 应用层,主要支撑实时大屏、实时订单指标、风控告警、实时推荐等业务。
项目中我负责表结构设计、分层建模、Flink/Spark SQL 开发、任务调优、数据一致性保障,同时解决过数据倾斜、Kafka 消息积压、Flink 状态 OOM、小文件过多、CDC 重复消费等常见问题;整体采用离在线双仓架构,实时看业务当下走势,离线做数据复盘与口径校准,保障数据准确稳定产出。
版本二:精简版(面试简短口述)
我从事大数据数仓开发,负责离线和实时数仓建设。
离线基于 Hive、Spark 构建四层数仓,定时同步业务库,做分层建模与指标计算,支撑 T+1 和小时级报表、用户画像;
实时采用 Flink+Kafka+Flink CDC+Doris 架构,通过 CDC 监听 MySQL Binlog 做增量同步,秒级实时入仓,经过 Flink 清洗聚合后落地 Doris,服务实时大屏和实时业务指标。
日常主要做建模、SQL 开发、任务调优和问题排查,处理过数据倾斜、消息积压、状态溢出、小文件等经典问题,保障双仓数据稳定可靠。
版本三:突出技术栈(简历 / 面试拔高版)
参与企业级流批一体、离在线双仓架构建设,技术栈涵盖 Hive、Spark、Flink、Kafka、Flink CDC、Apache Doris、ClickHouse。
负责数仓分层设计、维度建模、ODS-DWD-DWS-ADS 全链路开发;
ODS 层采用 Flink CDC 实现 MySQL 全量 + 增量无缝同步,替代传统全量抽取,降低业务库压力;
实时链路基于 Flink 流处理,解决事件时间乱序、水位线窗口、数据倾斜、状态管理、端到端 Exactly-Once;
离线基于 Spark SQL 做批量加工、任务调度与回溯补数;
最终实时指标落地 Doris 支撑 BI 大屏,离线数仓支撑复盘画像与报表,同时参与集群任务调优、SQL 优化、资源管控与数据质量保障。
我再给你整理一份面试常被追问的 10 个配套问题 + 标准答案,别人顺着你项目自我介绍往下问,你也能接住,要不要?
配套大数据数仓项目 面试追问 10 题 + 标准满分答案
(适配你刚才的项目自我介绍,面试官顺着问,直接背就能答)
1. 你们数仓为什么分四层?每层作用是什么?
答
采用标准四层:ODS、DWD、DWS、ADS。
- ODS:原始数据层,原样接入 MySQL、日志、CDC 增量数据,不清洗、做数据留存。
- DWD:明细宽表层,做清洗、去重、脱敏、维度关联,拼成业务宽表,避免后续重复关联。
- DWS:聚合中间层,按时间、区域、渠道做预聚合,计算 UV、交易额等中间指标。
- ADS:应用指标层,落地 Doris/ClickHouse,直接给大屏、BI、业务接口查询使用。
2. 实时数仓为什么用 Flink CDC 不用 Canal?
答
Flink CDC 可以全量 + 增量一条任务自动切换,不用分开开发;
而且原生和 Flink 集成,不需要额外部署 Canal 中间件,架构更轻、运维简单;
同时支持断点续传、 Exactly-Once 语义,更适合实时数仓 ODS 层接入。
3. CDC 同步怎么处理更新和删除数据?
答
CDC 抓取 Binlog 的 insert、update、delete 操作,自带操作类型标识;
Flink 消费后根据类型做对应处理:插入直接写入、更新做主键覆盖、删除做逻辑删除或物理删除,落地 Doris 主键表保证数据最终一致。
4. 实时数仓怎么保证数据不丢不重复?
答
- 源头 Kafka 配置多副本、acks=-1 保证不丢;
- Flink 开启 Checkpoint,偏移量和状态一致性保存;
- 下游落地采用唯一主键幂等写入,即使重复消费也不会产生重复数据;
- 采用 Flink CDC 自带 Exactly-Once 语义,全量增量无缝衔接。
5. 实时任务遇到数据倾斜怎么解决?
答
- 先定位倾斜 Key;
- 采用局部聚合 + 全局聚合两阶段预聚合;
- 对热点 Key 加盐打散;
- 维表关联倾斜开启 Runtime Filter、Colocate Join;
- 不合理维度提前过滤,减少 shuffle 数据量。
6. Flink 任务反压怎么排查解决?
答
先看上下游吞吐对比,定位瓶颈在下游、网络还是计算逻辑;
优化方式:
简化算子逻辑、前置过滤、增加并行度、调整缓冲区配置、拆分大任务,避免单点阻塞。
7. 实时和离线数据口径不一致怎么处理?
答
- 统一维度、统一时间粒度、统一业务编码口径;
- 离线作为基准,定期回溯校准实时数据;
- 公共指标统一下沉到 DWS 层,实时离线复用同一套逻辑;
- 梳理时间窗口、迟到数据处理规则保持一致。
8. 你们为什么选 Doris 不选 ClickHouse?
答
业务有多表 Join、实时更新、高并发 BI 查询需求;
Doris 有成熟 CBO 优化器,多表关联比 ClickHouse 强;支持实时 UPSERT、兼容 MySQL、运维简单、高并发能力强;
ClickHouse 更适合单表日志分析,复杂关联和高并发场景偏弱,所以选型 Doris。
9. 实时数仓小文件问题怎么解决?
答
Flink 端设置窗口攒批、分区合并;
Doris 端合理设置分区和分桶,自动合并版本;
控制写入频次,避免小批次频繁落地,减少小文件产生。
10. 你理解的流批一体是什么?
答
以数据湖 Hudi/Paimon 为存储底座,一套数据同时支持:
Flink 实时流式消费、Spark 离线批量分析;
实时做当日指标、离线做复盘回溯、口径校准,不用维护两套链路,实现存储统一、计算统一、口径统一。