1. 数据仓库基础架构解析
数据仓库的核心在于通过维度表(Dimension Table)和事实表(Fact Table)构建星型或雪花模型。这种设计模式源自Ralph Kimball的维度建模理论,其本质是将业务过程转化为可度量的"事实",并通过"维度"提供分析视角。
典型场景示例:
零售企业的销售分析系统中:
- 事实表记录每笔交易的金额、数量等度量值
- 维度表描述产品、时间、店铺等分析视角
这种结构使分析师能快速实现"按产品类别统计季度销售额"等典型分析需求。
1.1 维度表设计要点
维度表包含业务的描述性属性,设计时需注意:
- 代理键使用:建议使用自增整数而非业务主键,避免因业务系统键值变更导致的历史数据问题
- 缓慢变化维处理:
- Type1:直接覆盖旧值(不保留历史)
- Type2:新增版本记录(保留完整历史)
- Type3:添加历史字段(有限历史追溯)
- 层次结构设计:如时间维的"年-季度-月-日"层级,需平衡查询效率与存储成本
关键技巧:对常用查询条件建立位图索引,可提升高基数维度查询性能30%以上
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 事实表深度设计指南
2.1 事实表类型选择
根据业务特性选择合适的事实表类型:
| 类型 | 粒度 | 更新频率 | 典型场景 |
|---|---|---|---|
| 事务型 | 原子事件 | 仅插入 | 订单交易记录 |
| 周期快照 | 定期状态 | 周期性覆盖 | 每日库存余额 |
| 累积快照 | 过程里程碑 | 多次更新 | 订单履约流程 |
事务型事实表示例:
sql复制CREATE TABLE fact_sales (
sales_key BIGINT PRIMARY KEY,
date_key INT REFERENCES dim_date,
product_key INT REFERENCES dim_product,
store_key INT REFERENCES dim_store,
quantity INT NOT NULL,
