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:增加微型维度

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

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

  • 相关阅读:
    修复 Visual Studio Error “No exports were found that match the constraint”
    RabbitMQ Config
    Entity Framework Extended Library
    Navisworks API 简单二次开发 (自定义工具条)
    NavisWorks Api 简单使用与Gantt
    SQL SERVER 竖表变成横表
    SQL SERVER 多数据导入
    Devexpress GridControl.Export
    mongo DB for C#
    Devexress XPO xpPageSelector 使用
  • 原文地址:https://www.cnblogs.com/foolangirl/p/13950450.html
Copyright © 2011-2022 走看看