生而为人

程序员的自我修养

0%

面试流程模板

[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、业务接口查询使用。

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 数据量。

先看上下游吞吐对比,定位瓶颈在下游、网络还是计算逻辑;

优化方式:

简化算子逻辑、前置过滤、增加并行度、调整缓冲区配置、拆分大任务,避免单点阻塞。

7. 实时和离线数据口径不一致怎么处理?

  • 统一维度、统一时间粒度、统一业务编码口径;
  • 离线作为基准,定期回溯校准实时数据;
  • 公共指标统一下沉到 DWS 层,实时离线复用同一套逻辑;
  • 梳理时间窗口、迟到数据处理规则保持一致。

8. 你们为什么选 Doris 不选 ClickHouse?

业务有多表 Join、实时更新、高并发 BI 查询需求;

Doris 有成熟 CBO 优化器,多表关联比 ClickHouse 强;支持实时 UPSERT、兼容 MySQL、运维简单、高并发能力强;

ClickHouse 更适合单表日志分析,复杂关联和高并发场景偏弱,所以选型 Doris。

9. 实时数仓小文件问题怎么解决?

Flink 端设置窗口攒批、分区合并

Doris 端合理设置分区和分桶,自动合并版本;

控制写入频次,避免小批次频繁落地,减少小文件产生。

10. 你理解的流批一体是什么?

以数据湖 Hudi/Paimon 为存储底座,一套数据同时支持:

Flink 实时流式消费、Spark 离线批量分析;

实时做当日指标、离线做复盘回溯、口径校准,不用维护两套链路,实现存储统一、计算统一、口径统一