Skip to content
作者:daily5am创建:-更新:-
字数:预计阅读: 分钟访问量:--

数据仓库设计

AI生成声明: 本文档由AI辅助生成,旨在提供数据仓库设计的完整指南。

数据仓库是面向主题的、集成的、相对稳定的数据集合,理解其设计原则对于构建大数据分析系统至关重要。

核心问题

数据仓库特点

  1. 面向主题

    • 按业务主题组织
    • 跨部门数据整合
    • 支持决策分析
  2. 集成性

    • 多源数据整合
    • 数据清洗转换
    • 统一数据模型
  3. 相对稳定

    • 历史数据存储
    • 定期更新
    • 非实时更新

数据仓库架构

分层架构:

ODS(操作数据存储)

DWD(明细数据层)

DWS(汇总数据层)

ADS(应用数据层)

数据模型

1. 星型模型(Star Schema)

  • 事实表:中心表,存储度量
  • 维度表:围绕事实表
  • 简单直观
  • 查询性能好

2. 雪花模型(Snowflake Schema)

  • 维度表规范化
  • 减少数据冗余
  • 结构复杂
  • 查询性能较低

3. 星座模型(Galaxy Schema)

  • 多个事实表
  • 共享维度表
  • 复杂业务场景
  • 数据仓库常用

维度建模

事实表

类型:

  • 事务事实表:每个事务一行
  • 快照事实表:定期快照
  • 累积事实表:累积度量

设计原则:

  • 包含度量值
  • 包含维度外键
  • 粒度明确

维度表

类型:

  • 缓慢变化维(SCD)
  • 快速变化维
  • 退化维度

SCD处理:

  • Type 1:覆盖旧值
  • Type 2:新增行
  • Type 3:新增列

ETL流程

Extract(抽取)

  • 从源系统抽取数据
  • 全量抽取
  • 增量抽取

Transform(转换)

  • 数据清洗
  • 数据转换
  • 数据验证

Load(加载)

  • 加载到数据仓库
  • 全量加载
  • 增量加载

常见面试题

  1. 数据仓库和数据库的区别?

    • 数据仓库:OLAP,分析型
    • 数据库:OLTP,事务型
    • 设计目标不同
  2. 星型模型和雪花模型的区别?

    • 星型:维度表非规范化
    • 雪花:维度表规范化
    • 星型查询性能更好
  3. 如何设计数据仓库?

    • 确定业务主题
    • 设计事实表和维度表
    • 确定数据粒度
    • 设计ETL流程