第2章 数仓基础概念与分层架构

离线数仓面试的第一道必考题,往往围绕分层架构和核心概念展开。面试官通过这些问题快速判断候选人对数仓本质的理解深度、工程落地经验以及建模思维是否系统。本章从分层架构、数据库对比、模型选择三个高频角度切入,配合真实项目案例,帮你构建清晰的回答框架。

本章学习目标: ① 掌握分层架构的4层结构与元数据管理逻辑;② 理解数仓与数据库的核心差异;③ 学会星型与雪花模型的选择策略;④ 能结合项目经验迁移回答话术。
离线数仓分层架构图 ADS层 应用数据输出 DWS层 汇总宽表构建 DWD层 清洗明细沉淀 ODS层 原始数据接入 元数据管理贯穿各层 数据接入层 数据清洗层 数据汇总层 应用输出层 数据流向:自下而上,逐层抽象与聚合

📌 面试问题:请介绍一下数据仓库的分层架构,每层的作用是什么?

🎯 面试官考察点

  • 对分层体系的理解深度——是否只是背名字,还是真正理解每层的职责
  • 能否说清楚层与层之间的边界与数据流转关系
  • 是否有实际项目经验,能否结合场景说明分层价值

🧩 回答框架

  1. 总述:分层是为了实现数据解耦、复用和统一管理,降低耦合度
  2. 分层详解:自下而上依次介绍 ODS → DWD → DWS → ADS,每层说明核心职责与典型操作
  3. 贯穿机制:补充元数据管理和数据治理如何贯穿各层
  4. 总结:分层带来的实际收益(开发效率、数据一致性、易维护)

✏️ 简短示例回答

数仓分层自下而上包括:ODS层存储原始业务数据,保持历史轨迹;DWD层对数据进行清洗、去重和标准化,沉淀明细数据;DWS层按主题进行轻度汇总,构建通用宽表;ADS层面向具体业务场景输出个性化报表。分层实现了数据解耦与复用,显著提升了数据一致性。

🔍 可能追问

  • ODS层与业务数据库有什么区别?可以保留多长时间的数据?
  • DWD层的数据清洗具体怎么做?遇到过哪些脏数据场景?
  • 你们项目中有没有出现过跨层引用?为什么会出现?怎么治理?
⚠️ 避坑提醒:不要只背分层名称,要结合数据处理流程说明每层的实际作用;避免过度强调某一层而忽略其他层;如果项目中有特殊分层设计(如增加DIM层或DM层),要主动说明设计原因。
面试追问路径图 · 数仓分层架构 数仓分层 架构 ODS与业务库区别 DWD层清洗逻辑 DWS层宽表设计 ADS层性能优化