Kimball 维度建模理论

本文介绍了数据仓库中的维度建模,包括事实表和维度表的概念及其特点。事实表存储行为记录等不变数据,维度表则包含常更新的分析角度信息。接着,文章详细阐述了星型模型、雪花模型和星座模型的差异和应用场景。星型模型以事实表为中心,便于多角度分析;雪花模型通过维度表关联,适合OLTP场景;星座模型则是多个事实表共享维度表,适用于复杂业务需求。最后,强调了维度建模在减少查询复杂度和提高分析灵活性方面的重要性。
一、维度建模分为两种表
  1. 事实表
    存在这样一些数据,如行为记录,操作记录,订单,日志等,都可以作为事实表
    特点:每条数据都有一个唯一键,数据通常来说不会更新,随着时间的增加而增加
  2. 维度表
    维度表是分析数据角度的信息表,如商家信息,地区信息,用户信息为角度存储的表,适合经常更新,一般和事实的关系是一对多
二、维度建模三种模型:
  1. 星型模型
  2. 雪花模型
  3. 星座模型
说明:

1). 星型模型
以事实表为中心,所有的维度表直接连在事实表上,比较常用的一种形式。这样维度加事实的结构即便于维度数据(少数据量)更新,又能够满足自由组合满足不同的分析维度
在这里插入图片描述
如上图所示:

  1. 产品表与部门表,会存在更新现象,而事实表,一般只存储部门ID,产品ID,在需要的时候再进行关联
  2. 这样的结构能够以部门的维度做数据分析,如统计某部门的销售金额,亦能够以产品的角度分析某个产品的销售总额,能够灵活的以不同角度分析和查看数据

2). 雪花模型
雪花模型指的是在星型模型的基础上,维度表再关联维度表,这种结构应该在OLTP场景下会用这样的结构,在数仓下基本没人使用。如果业务数据存储为这样的结构,常常将数据打平,即合并成一张维度表,这样它将会上级为星型模型。之所以如此是为了减少表连接查询的性能开销和维护的复杂程度,雪花模型如下:
在这里插入图片描述
2). 星座模型
在实际业务中,星座模型才是数仓建设的最终归属,它也是建立在星型模式下,不同的是只是和其他事实表共享了维度表,即存在多张事实表,共享一张维度表的情况
在这里插入图片描述

kimball 维度建模,星型和星座 模型核心在于将事实表(过程数据通常不变的数据)与主体信息表(常更新的数据,有维度信息)逻辑进行拆分。 实现任意维度分析的需求下,减少表连接查询的深度,这也是市面上常见的数仓建设理论

维度建模(Dimensional Modeling)是数据仓库设计中的核心方法论,由Ralph Kimball提出,主要面向分析场景,以直观、高性能的查询为目标。其核心思想是通过**事实表(Fact Table)**和**维度表(Dimension Table)**构建星型或雪花型模型。 --- ### **核心概念** 1. **事实表** - 存储业务过程的**度量值**(如销售额、订单量) - 包含: - **外键**:关联维度表 - **度量值**:可计算的数值(如金额、数量) - **退化维度**:直接存储在事实表中的维度属性(如订单号) ```sql -- 示例:销售事实表 CREATE TABLE fact_sales ( product_key INT, -- 维度外键 date_key INT, -- 维度外键 customer_key INT, -- 维度外键 sales_amount DECIMAL, -- 度量 quantity INT -- 度量 ); ``` 2. **维度表** - 存储**描述性属性**(如产品名称、客户信息) - 包含: - **主键**:唯一标识符(通常代理键) - **层级关系**(如年-月-日) - **缓慢变化维度(SCD)**:处理属性变化的策略(如类型2:新增版本记录) ```sql -- 示例:产品维度表 CREATE TABLE dim_product ( product_key INT PRIMARY KEY, -- 代理键 product_id VARCHAR, -- 业务键 product_name VARCHAR, category VARCHAR ); ``` --- ### **建模方法** 1. **星型模型** - 事实表直接关联所有维度表(无规范化) - 查询简单高效(主流选择) ``` fact_sales ├── dim_product ├── dim_date └── dim_customer ``` 2. **雪花模型** - 维度表进一步规范化(如日期拆分为年、月、日表) - 节省存储但查询复杂度高(较少使用) --- ### **设计原则** 1. **业务过程驱动** - 从业务需求(如销售分析)出发,而非数据源头 2. **原子粒度** - 事实表记录最细粒度(如单笔订单而非日汇总) 3. **一致性维度** - 跨事实表共享同一维度(如统一的日期维度) 4. **缓慢变化维度策略** - 类型1:覆盖旧值 - 类型2:新增版本记录(常用) - 类型3:保留历史字段 --- ### **优缺点** | **优势** | **局限性** | |-----------------------------------|-------------------------------| | 查询高效(减少表连接) | 冗余存储维度属性 | | 业务用户易理解 | 不适合OLTP场景 | | 支持聚合和钻取分析 | 对频繁更新的维度处理复杂 | --- ### **应用场景** - 零售:销售分析、库存周转 - 金融:交易监控、风险指标 - 互联网:用户行为分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值