zoukankan      html  css  js  c++  java
  • kimball维度建模(3)-维度表技术基础

    1.定义:

    维度表包含与业务过程度量事件有关的文本环境,即事件的5W1H:When,Where,Who, What,Why,How

    tips:避免在维度属性中使用空值(但这里注意空值NULL不关联,但空串字符会关联);事实表不同,事实表的度量可以为空,但外键不能存在空值,否则违背了参照完整性。

    2.一些关于维度的处理:

    1)退化维:

      一般来说事实表中的外键都对应一个维表,维的信息主要存放在维表中;但是退化维仅仅是事实表中的一列,这个维的相关信息都在这一 列中,没有维表与之相关联。比如:发票号,序列号等等。退化维具有普通维上卷、切片的各种操作。若发票号下有众多明细项,退化维是表示母子订单发票号的双亲关系唯一标识符,可识别哪些属于同一订单,这时退化维可用于分组键。

    2)非规范化扁平维度:

    非规范化的多对一固定深度层次(类似商品->品牌->类别树状多对一关系),将多层次维度打开为多个扁平的维度属性。以易用为主,不需要省空间而单独建层次的维度表。

    3)多层次维度:

    与上面的多对一不同,这里指的是维度包含不只一个层次,如日历可以按财务周期划分为天到周;也可以从天到月到年。

    4)杂项维度:

    即建立单独的维度表将不同维度合并到一起,是一种事务概要型维度。不需要列出所有可能的笛卡尔积,但至少包含实际发生的可能情况。

    5)支架维度:

    就是维度表上还有维度外键的雪花模式,尽量少用。

    3.缓慢变化维:

    1)类型0:原样保留

    原始值,无变化的

    2)类型1:重写

    只看当前值,不考虑历史

    3)类型2:增加新行

    拉链表的处理方式,三个额外列:生效时间、失效时间、当前行标志。

    4)类型3:增加新属性--类似2019旧属性,2020新属性

    可以考虑当前值,以及先前属性值

    5)类型4:增加微型维度

    处理频繁变化的维度属性,如人口属性。即将年龄、购买频繁度、收入水平等转换成离散的范围值组成新的维度以适应变化,在逻辑层还是可以展开码值使用。

    有两种场景不适合微型维度:数据挖掘分析、有分析离散值的需求

  • 相关阅读:
    MyBatis insert 返回主键的方法
    Linux实时网络监控工具:iftop
    深入理解Spring MVC 思想
    spring启动时加载字典表数据放入map
    mysql PROCEDURE ANALYSE() 用法
    http://www.cnblogs.com/shihaiming/
    maven 多模块项目
    分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载-2)
    Nginx1.8.0版本平滑升级新版本1.9.7
    Linux 添加Nginx 到 service 启动
  • 原文地址:https://www.cnblogs.com/foolangirl/p/13950450.html
Copyright © 2011-2022 走看看