第2章 数仓基础概念与分层架构
离线数仓面试的第一道必考题,往往围绕分层架构和核心概念展开。面试官通过这些问题快速判断候选人对数仓本质的理解深度、工程落地经验以及建模思维是否系统。本章从分层架构、数据库对比、模型选择三个高频角度切入,配合真实项目案例,帮你构建清晰的回答框架。
本章学习目标: ① 掌握分层架构的4层结构与元数据管理逻辑;② 理解数仓与数据库的核心差异;③ 学会星型与雪花模型的选择策略;④ 能结合项目经验迁移回答话术。
📌 面试问题:请介绍一下数据仓库的分层架构,每层的作用是什么?
🎯 面试官考察点
- 对分层体系的理解深度——是否只是背名字,还是真正理解每层的职责
- 能否说清楚层与层之间的边界与数据流转关系
- 是否有实际项目经验,能否结合场景说明分层价值
🧩 回答框架
- 总述:分层是为了实现数据解耦、复用和统一管理,降低耦合度
- 分层详解:自下而上依次介绍 ODS → DWD → DWS → ADS,每层说明核心职责与典型操作
- 贯穿机制:补充元数据管理和数据治理如何贯穿各层
- 总结:分层带来的实际收益(开发效率、数据一致性、易维护)
✏️ 简短示例回答
数仓分层自下而上包括:ODS层存储原始业务数据,保持历史轨迹;DWD层对数据进行清洗、去重和标准化,沉淀明细数据;DWS层按主题进行轻度汇总,构建通用宽表;ADS层面向具体业务场景输出个性化报表。分层实现了数据解耦与复用,显著提升了数据一致性。
🔍 可能追问
- ODS层与业务数据库有什么区别?可以保留多长时间的数据?
- DWD层的数据清洗具体怎么做?遇到过哪些脏数据场景?
- 你们项目中有没有出现过跨层引用?为什么会出现?怎么治理?
⚠️ 避坑提醒:不要只背分层名称,要结合数据处理流程说明每层的实际作用;避免过度强调某一层而忽略其他层;如果项目中有特殊分层设计(如增加DIM层或DM层),要主动说明设计原因。