第3章 离线数仓分层架构与模型设计

章节导入 · 离线数仓分层是数仓产品经理面试的必考基石。面试官通过分层设计、事实表建模、维度策略三道题,快速判断你对数据流转全链路的掌控力。本章拆解3个高频考题,输出可直接套用的回答框架。
分层架构回答框架 · 四层模型 ODS 源数据接入 原始记录 · 增量/全量 保持历史轨迹,统一存储 DWD 明细标准化 清洗去重 · 一致性 维度退化,形成一致明细 DWS 主题汇总 轻度汇总 · 宽表 按主题域构建汇总宽表 ADS 业务应用 高度汇总 · 指标 多维分析、报表、看板 ↑ 数据自上而下逐层加工,每层职责清晰 ↑ 回答时先讲分层目的,再逐层说明,最后总结数据流转

分层架构核心对照表

分层 核心职责 数据粒度 存储策略 典型表类型
ODS 源数据接入与存储 原始粒度 增量 / 全量 流水表、日志表
DWD 清洗去重 & 标准化 明细粒度 增量 事实表、维度表
DWS 主题轻度汇总 汇总粒度 分区 宽表、汇总事实表
ADS 业务指标 & 报表 高度汇总 按需 指标表、多维分析表
面试加分点 · 回答分层时主动提及“元数据管理”和“数据血缘”,展现你对数据治理的理解。面试官看重的不只是分层名称,更是“为什么这样分”的决策逻辑。

🎯 请介绍离线数仓的常见分层架构及每层主要职责

考察点:

  • 是否理解数据从源到应用的全链路流转
  • 分层设计的核心目的(解耦、复用、可追溯)
  • 能否清晰界定每层边界,避免职责混淆

回答框架: 总分总结构 → ① 先讲分层目的(解耦、复用、可追溯)→ ② 逐层说明ODS/DWD/DWS/ADS核心职责 → ③ 总结数据流转方向及分层收益。

示例回答: 离线数仓通常分ODS、DWD、DWS、ADS四层。ODS接入源系统原始数据,保持历史轨迹;DWD进行清洗去重与标准化,形成一致明细;DWS按主题轻度汇总,提升查询性能;ADS面向业务产出指标与报表。分层实现责任清晰、数据可追溯、计算复用性强。

可能追问: “如何确定一张表应该放在哪一层?” “如果出现跨层引用怎么处理?”

避坑提醒: 不要把ODS和DWD的职责混为一谈——ODS只做接入,不做清洗;DWD才做标准化。混淆二者会让面试官觉得你缺乏分层粒度意识。

🎯 如何设计一张交易事实表?需要考虑哪些维度?

考察点:

  • 维度建模方法论(星型/雪花型)的实战运用
  • 能否准确识别业务过程、粒度、维度与度量
  • 事实表设计原则(单业务过程、可加性度量)

回答框架: 明确业务过程 → 确定粒度 → 选择维度 → 定义度量 → 补充退化维度与事实一致性。

示例回答: 设计交易事实表先确定业务过程为“订单支付”,粒度为“子订单”。维度包括时间、用户、商品、店铺、促销五个维度,度量包括支付金额和支付数量。遵循“一张事实表只关注一个业务过程”的原则,避免粒度混用,确保数据一致性。

可能追问: “事实表有哪些类型?如何选择?” “如何处理多业务过程关联?”

避坑提醒: 不要在一个事实表中放入多个业务过程(如同时放支付和退款),否则会导致粒度混乱。业务过程不同,事实表应分开设计。
面试追问路径 · 分层与模型设计 分层架构设计 分层边界 表归属如何判定 数据依赖 跨层引用与调度 异常场景 延迟与回溯处理 架构演进 新增业务域适配 面试官从分层设计向外延伸,考察边界决策与异常应对能力

🎯