3. 数据仓库概念与架构:方法论选择、分层设计与主题域划分
在构建采购支出数据仓库之前,必须明确两个核心问题:采用哪种数据仓库方法论?如何设计分层架构与主题域?本章将围绕 Kimball 与 Inmon 的经典之争、ODS/DWD/DWS/ADS 四层模型的设计原则,以及采购业务主题域的划分方法展开,为后续 ETL 映射与合同符合率校验奠定架构基础。
3.1 数据仓库方法论:Kimball vs Inmon
两种主流方法论在建模思路、开发周期和适用场景上存在本质差异。下表从多个维度进行对比:
| 对比维度 | Kimball(维度建模) | Inmon(范式建模) |
|---|---|---|
| 核心理念 | 自下而上,从业务需求出发,先建数据集市再集成 | 自上而下,先建企业级 3NF 模型,再衍生数据集市 |
| 建模方式 | 星型/雪花型维度模型 | 第三范式(3NF)实体关系模型 |
| 开发周期 | 短,快速交付业务价值 | 长,需要全局规划 |
| 数据冗余 | 适度冗余,查询性能高 | 低冗余,数据一致性高 |
| 变更适应性 | 维度表缓慢变化维(SCD)处理灵活 | 模型变更影响面大,需谨慎 |
| 适用场景 | 部门级分析、敏捷 BI、采购支出分析 | 企业级数据仓库、跨系统集成 |
课程选择建议: 本课程采用 Kimball 维度建模 作为主导方法论。原因在于采购支出分析通常面向财务、采购、供应链等业务部门,需要快速响应合同符合率、支出趋势、供应商绩效等分析需求,星型模型能提供最优的查询性能与业务可理解性。
下图展示了两种方法论在架构流程上的核心差异:
实践要点: 在采购支出场景中,建议先以 Kimball 方式快速构建“采购合同事实表 + 供应商/物料/时间维度”的核心星型模型,后续再逐步扩展至企业级一致性维度,兼顾敏捷与规范。
3.2 分层架构设计原则:ODS / DWD / DWS / ADS
一个成熟的数据仓库通常采用四层分层架构,每层承担不同的职责。采购支出数据仓库的分层设计如下:
| 分层 | 全称 | 核心职责 | 采购支出示例 |
|---|---|---|---|
| ODS | 操作数据存储 | 实时/准实时同步源系统数据,保持原始粒度 | ERP 采购订单、合同、发票原始记录 |
| DWD | 明细数据层 | 数据清洗、去重、标准化,保留最细粒度 | 清洗后的采购订单明细、合同条款明细 |
| DWS | 汇总数据层 | 按业务维度轻度汇总,提升查询性能 | 按供应商/物料/月度汇总的支出金额 |
| ADS | 应用数据层 | 面向特定分析主题,提供数据集市/报表 | 合同符合率看板、供应商绩效评分表 |
设计避坑: ODS 层应保持与源系统相同的粒度,不要在此层做业务聚合;DWD 层是数据质量的核心防线,合同符合率校验的清洗逻辑应在此层完成;DWS 层汇总粒度需与业务分析频率对齐,避免过度汇总导致下钻困难。
下图展示了四层架构的数据流转关系:
分层设计原则:
- ODS → DWD: 完成数据清洗、字段标准化、合同与订单的关联校验,是合同符合率计算的第一道关卡。
- DWD → DWS: 按采购分析维度(供应商、物料、时间、合同)进行轻度汇总,保留可下钻的粒度。
- DWS → ADS: 面向特定业务主题(如合同执行偏差、支出合规性)构建数据集市,直接支撑 BI 报表。
3.3 采购主题域划分
主题域是数据仓库中最高级别的业务分类。采购支出数据仓库通常划分为以下 6 大主题域:
| 主题域 | 核心实体 | 典型分析场景 |
|---|---|---|
| 合同主题域 | 合同头、合同条款、合同变更 | 合同执行率、条款符合率、合同到期预警 |
| 采购订单主题域 | 采购订单、订单行、收货单 | 订单准时率、订单与合同匹配度 |
| 供应商主题域 | 供应商主数据、资质、绩效评分 | 供应商支出占比、交付质量、合规风险 |
| 物料/服务主题域 | 物料主数据、品类、价格 | 品类支出分布、价格波动分析 |
| 财务支付主题域 | 发票、付款、预付款 | 付款周期、发票与订单/合同一致性 |
| 支出分析主题域 | 支出事实、预算、成本中心 | 支出趋势、预算执行率、ROI 分析 |
主题域划分要点: 每个主题域应包含独立的维度表和事实表,且维度表应尽量实现一致性维度(如统一的时间维度、供应商维度),避免跨主题域分析时出现“维度不一致”问题。合同符合率校验主要涉及合同主题域与采购订单主题域的交叉分析。
下图展示了主题域之间的核心关联关系:
课程后续关联: 第 4 章将基于本章选定的 Kimball 方法论与四层架构,详细设计采购合同符合率校验的维度模型与事实表结构。主题域划分将直接指导后续 ETL 映射中的源表选择与目标表设计。