第3章 离线数仓分层架构与模型设计
章节导入 · 离线数仓分层是数仓产品经理面试的必考基石。面试官通过分层设计、事实表建模、维度策略三道题,快速判断你对数据流转全链路的掌控力。本章拆解3个高频考题,输出可直接套用的回答框架。
分层架构核心对照表
| 分层 | 核心职责 | 数据粒度 | 存储策略 | 典型表类型 |
|---|---|---|---|---|
| ODS | 源数据接入与存储 | 原始粒度 | 增量 / 全量 | 流水表、日志表 |
| DWD | 清洗去重 & 标准化 | 明细粒度 | 增量 | 事实表、维度表 |
| DWS | 主题轻度汇总 | 汇总粒度 | 分区 | 宽表、汇总事实表 |
| ADS | 业务指标 & 报表 | 高度汇总 | 按需 | 指标表、多维分析表 |
面试加分点 · 回答分层时主动提及“元数据管理”和“数据血缘”,展现你对数据治理的理解。面试官看重的不只是分层名称,更是“为什么这样分”的决策逻辑。
🎯 请介绍离线数仓的常见分层架构及每层主要职责
考察点:
- 是否理解数据从源到应用的全链路流转
- 分层设计的核心目的(解耦、复用、可追溯)
- 能否清晰界定每层边界,避免职责混淆
回答框架: 总分总结构 → ① 先讲分层目的(解耦、复用、可追溯)→ ② 逐层说明ODS/DWD/DWS/ADS核心职责 → ③ 总结数据流转方向及分层收益。
示例回答: 离线数仓通常分ODS、DWD、DWS、ADS四层。ODS接入源系统原始数据,保持历史轨迹;DWD进行清洗去重与标准化,形成一致明细;DWS按主题轻度汇总,提升查询性能;ADS面向业务产出指标与报表。分层实现责任清晰、数据可追溯、计算复用性强。
可能追问: “如何确定一张表应该放在哪一层?” “如果出现跨层引用怎么处理?”
避坑提醒: 不要把ODS和DWD的职责混为一谈——ODS只做接入,不做清洗;DWD才做标准化。混淆二者会让面试官觉得你缺乏分层粒度意识。
🎯 如何设计一张交易事实表?需要考虑哪些维度?
考察点:
- 维度建模方法论(星型/雪花型)的实战运用
- 能否准确识别业务过程、粒度、维度与度量
- 事实表设计原则(单业务过程、可加性度量)
回答框架: 明确业务过程 → 确定粒度 → 选择维度 → 定义度量 → 补充退化维度与事实一致性。
示例回答: 设计交易事实表先确定业务过程为“订单支付”,粒度为“子订单”。维度包括时间、用户、商品、店铺、促销五个维度,度量包括支付金额和支付数量。遵循“一张事实表只关注一个业务过程”的原则,避免粒度混用,确保数据一致性。
可能追问: “事实表有哪些类型?如何选择?” “如何处理多业务过程关联?”
避坑提醒: 不要在一个事实表中放入多个业务过程(如同时放支付和退款),否则会导致粒度混乱。业务过程不同,事实表应分开设计。