数据仓库建模(Data Warehousing)学习笔记

本文介绍了数据仓库建模的核心概念,包括维度表(Dimension)和事实表(Fact),并详细阐述了建模的四步曲:选取业务过程、定义粒度、选定维度和确定事实。重点讨论了规范的重要性,特别是在使用代理关键字以提升性能和处理缓慢变化维(Slowly Changing Dimensions)的策略,如直接修改属性、添加维度行和维度列。最后,提到了维度角色模仿的概念,解决不同视图中同一维度的呈现问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Data Warehousing基本表:

  • Dimension(维度表): 度量表
  • Fact(事实表): 数字表,倾向于更多的行和更少的列

建模四步曲:

  1. 选取业务处理过程
  2. 定义业务处理粒度
  3. 选定维度
  4. 确定事实

最重要的事情:规范。名称的规范,计算方式的规范.....

在事实表和维度表中,尽量不要使用本身已有的关键字,而使用数字类型的代理关键字。
原因:

  • 速度更快
  • 可能会存在本身已有的关键字(比如产品SKU)会同时存在多行的情况(缓慢变化维).

退化维度:只有一个维度属性值,比如订单编号,就应该直接放入到事实表中

缓慢变化维(Slowly Changing Dimensions):基本”保持不变的维度
以产品维度来介绍三种做法:

  1. 直接修改属性:
    优点:快速、方便,适用于更正作用的属性值。
    缺点:丢失了历史变化
  2. 添加维度行:
    优点:保持历史变化,不需要变动事实表(一个产品SKU可能对应不同的代理关键字)。
    缺点:加速了维度表的膨胀,不能将新属性值同旧事实历史联系起来。
  3. 添加维度列:
    优点: 适用于同时强烈需要为两个方面的视图提供支持的应用,可以同时跟踪维度值转换的变化。比如用户可能希望按照新的地区名称跟踪历史,并且反过来按照旧的地区名称跟踪新的数据。
    缺点:不适用于跟踪大量的中间属性值带来的影响。

混合渐变维

  • 可预见的“多”重变化(比如按年审视销售地域分布):添加多个可遇见的维度列,如2001年地区,2002年地区,2003年地区,当年地区....
  • 不可预见的“单”重变化:增加新行捕获变化内容,并且增加新列跟踪变动情况。

维度角色模仿:

  • 同样的维度(比如说订单事实表中的订单日期和发货日期)需要用不同的视图(View)来表示,否则在把这两种日期列都拖入报表时,SQL可能无法区分Or的关系(会认为要求这两个日期是and的关系)。
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值