第4章 数据仓库分层架构:ODS、DWD、DWS、ADS

分层架构是数据仓库建设的骨架,也是BI建模工程师面试中出现频率最高的考点之一。面试官通过分层相关提问,考察候选人对数据流转、职责划分、设计原则的理解深度。本章从四层职责、分层原则、面试应答策略三个维度展开,帮助你构建完整的分层知识体系。

核心掌握:ODS(源数据接入)→ DWD(明细标准化)→ DWS(轻度汇总)→ ADS(应用集市),每一层的输入、输出、粒度变化、典型操作必须脱口而出。

分层职责速览

层级 全称 核心职责 数据粒度 典型操作
ODS Operational Data Store 源数据原样接入 原始粒度 增量/全量同步、历史拉链
DWD Data Warehouse Detail 清洗去重、标准化 明细粒度 维度退化、质量校验
DWS Data Warehouse Summary 轻度汇总、主题宽表 汇总粒度 总线矩阵、维度一致性
ADS Application Data Store 应用集市、指标输出 指标粒度 报表、大屏、即席查询
数据仓库分层架构 · 回答框架 ODS 层 源数据接入 · 保持原貌 增量/全量同步 DWD 层 清洗去重 · 标准明细 维度退化 · 质量校验 DWS 层 轻度汇总 · 主题宽表 总线矩阵 · 维度一致 ADS 层 应用集市 · 指标输出 报表 · 大屏 · 即席查询 分层核心原则 🔹 高内聚低耦合  ·  🔹 清晰数据流向  ·  🔹 一致性维度 收益:数据血缘可追溯 · 开发业务解耦 · 公共层复用

面试问答卡 ① 分层架构概述

面试问题:请介绍一下数据仓库的分层架构及各层的作用。

面试官考察点:

  • 是否具备全局架构视角,能否清晰描述四层职责
  • 各层之间的数据流转关系是否讲得清楚
  • 是否理解分层背后的设计思想而非死记硬背

回答框架: 总述分层思想 → 按 ODS → DWD → DWS → ADS 逐层说明(职责 + 粒度 + 典型操作)→ 总结分层价值

示例回答: 数据仓库通常分为四层。ODS 层暂存源系统原始数据,保持历史记录;DWD 层完成清洗去重和维度退化,形成标准明细事实;DWS 层按业务主题轻度汇总,构建宽表;ADS 层面向应用输出指标,支撑报表与大屏。分层实现了数据与业务解耦,提升复用性和可追溯性。

避坑提醒: 不要只背定义,要结合具体例子说明每层的数据粒度变化。例如“订单表在 ODS 是原始记录,在 DWD 完成去重,在 DWS 按天汇总,在 ADS 输出 GMV”。

面试追问路径 · 分层架构延伸方向 数仓分层架构 分层原则 追问:跨层引用如何治理? ODS 设计要点 追问:保留策略?结构变更? DWD 数据质量 追问:质量规则如何落地? DWS/ADS 指标 追问:维度一致性?口径对齐?

面试问答卡 ② 分层原则与收益

面试问题:数据仓库分层的基本原则是什么?为什么要分层?

面试官考察点:

  • 是否理解分层设计的内在逻辑,能否讲出原则背后的原因
  • 是否了解分层带来的实际业务收益
  • 是否有过跨层引用等反例的治理经验

回答框架: 先说明分层目的 → 列出 3 条核心原则(每条一句话解释)→ 给出分层收益 → 可补充反面案例说明不遵循原则的后果

示例回答: 分层原则包括三条:高内聚低耦合,各层职责单一互不依赖;清晰数据流向,禁止跨层引用避免血缘混乱;一致性维度,确保指标口径统一。分层带来三大收益:数据血缘可追溯、开发与业务解耦、公共层复用减少重复建设。我们曾因跨层引用导致数据不一致,重构后才彻底解决。

避坑提醒: 不要只背理论,要结合项目说明你如何落地这些原则。例如“在 DWS 层我们通过总线矩阵保证维度一致性,每个主题域公用一套维度表”。

面试问答卡 ③ ODS 与 DWD 的职责划分

面试问题:ODS 层和 DWD 层有什么区别?如何设计 ODS 层?

面试官考察点:

  • 是否清晰区分“原样接入”和“清洗标准化”的边界
  • ODS 层设计是否考虑过实际场景(保留策略、结构变更)
  • 是否理解 ODS 作为数据溯源基座的价值

回答框架: 先说职责区别(粒度、操作、目的三个维度对比)→ 再讲 ODS 设计三个要点(接入策略、拉链设计、监控)→ 可补充 DWD 的典型处理流程

示例回答: ODS 层保持源数据原貌,不改变结构与粒度,只做增量或全量接入;DWD 层完成清洗去重、维度退化、标准化。ODS 设计需关注三点:接入策略选择(增量/全量/拉链),历史数据保留周期,以及数据质量监控。通常 ODS 与源系统保持 1:1 表映射,作为数据溯源的基础。

避坑提醒: 不要把 ODS 层设计得过于复杂。ODS 的核心是“原样接入”,不要在 ODS 层做业务清洗,那是 DWD 的职责。

项目案例:电商零售平台数据仓库分层建设

项目名称:某电商零售平台数据仓库分层建设项目

业务背景: 业务快速扩张,原有烟囱式报表开发导致指标口径混乱、数据重复建设严重,30+ 业务系统各自为战,管理层无法获得统一视图。

规模指标接入 30+ 业务系统 · 日均处理 5TB · 覆盖 500+ 核心指标 · 支撑 200+ 日常报表
技术栈Hadoop HDFS · Hive · Spark · DataX · MySQL · Apache Atlas

核心难点:

  • 多业务系统数据源异构,字段标准不统一,清洗规则复杂
  • 历史数据回溯需求与存储成本之间的平衡,需要设计分级存储策略
  • 跨层数据一致性保障机制,避免因分层带来的数据延迟和质量问题
  • 你们是如何保证 DWD 层数据质量的?有没有自动化的质量规则引擎?
  • 数据血缘在你们项目中是如何落地的?用了什么工具?
  • 如何处理维度变化的缓慢变化维(SCD)?用的是 Type 1 还是 Type 2?

可迁移回答话术: “在 ODS 层我们采用增量 + 全量双轨策略,核心交易表按天分区保留 90 天历史,配置表保留全量快照。DWD 层通过统一数据质量规则引擎,对空值、边界值、业务逻辑进行自动校验,异常数据写入告警表并触发修复流程。DWS 层按业务域构建总线矩阵,确保各主题域维度一致性,通过 Apache Atlas 实现字段级血缘追踪。”

💡 面试加分提示: 在回答分层相关问题时,主动提及“总线矩阵”、“维度一致性”、“数据血缘”等关键词,并给出你在项目中的具体落地方式,会显著提升面试官对你专业度的认可。
⚠️ 常见错误