数据仓库系列之维度建模二

   在上一篇文章中我们简单介绍了什么是维度建模以及维度建模的基本要素,这篇文章中我开始针对事实表和维度表的类型介绍。

一、事实表

事实表存储了从业务活动或事件提炼出来的性能度量,它主要包含维度表的外键和连续变化的可加性数值或半可加事实。事实表产生于业务过程中而不是业务过程的描述性信息。它一般是行多列少,占据数据仓库大约90%的空间。在维度模型中也有表示多对多关系的事实表,其他都是维度表。

1、事实表粒度

事实表的粒度是产生事实行数据的度量事件的业务定义。粒度确定了事实表的业务主键,事实表的所有度量值必须具有相同的粒度。

2、事实表类型

2.1、事务事实表

它是面向事务的,其粒度是每一行对应一个事务,它是最细粒度的事实表也称“原子事实表”。事务事实表中的数据在事务事件发生后产生,数据的粒度通常是每个事务一条记录。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。

2.2、周期快照事实表

它是按照良好的时间周期间隔(每天,每周,每月)来捕捉业务活动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补充,而非替代。典型的例子如销售日快照表、库存日快照表等。周期快照事实表的粒度是每个时间段一条记录,通常比事务事实表的粒度要粗,是在事务事实表之上建立的聚集表。周期快照事实表的维度个数比事务事实表要少,但是记录的事实要比事务事实表多。

周期快照事实表的日期维度通常是记录时间段的终止日,记录的事实是这个时间段内一些聚集事实值。事实表的数据一旦插入即不能更改,其更新方式为增量更新。

2.3、累积快照事实表

它用于描述业务过程中某个不确定时间跨度里的活动,它随着业务活动的发生会不断的更新。累积快照事实表和周期快照事实表有些相似之处,它们存储的都是事务数据的快照信息。但是它们之间也有着很大的不同,周期快照事实表记录的确定的周期的数据,而累积快照事实表记录的不确定的周期的数据。

累积快照事实表代表的是完全覆盖一个事务或产品的生命周期的时间跨度,它通常具有多个日期字段,用来记录整个生命周期中的关键时间点。另外,它还会有一个用于指示最后更新日期的附加日期字段。由于事实表中许多日期在首次加载时是不知道的,所以必须使用代理关键字来处理未定义的日期,而且这类事实表在数据加载完后,是可以对它进行更新的,来补充随后知道的日期信息。

举例来说客户购买商品的整个过程记录:

订货日期 预定交货日期 实际发货日期 实际交货日期数量 金额 运费

3、事实表区别:

事实表类型对比

二、维度表

维度表是对业务过程的上下文描述,主要包含代理键、文本信息和离散的数字。它是进入事实表的入口,丰富的维度属性给出了对事实表的分析切割能力,它一般是行少列多。如果属性值是离散的,用于过滤和标记的,就放到维度表里,如果是属性值是连续取值,可用于计算的,就放到事实表中。

1、维度表类型

1.1、缓慢变化维

1)、类型1

字段值发生变化时覆盖原来的值。

缓慢变化维度类型一

2).类型2

字段值发生变化时会新增一行,重新分配代理键,每一行添加开始日期,结束日期,版本号,是否当前值。

缓慢变化维度类型二

3).类型3

每条记录会新增一列来标识变化前的值,发生变化时,把旧值放到新增的列中,把新值覆盖旧值。

缓慢变化维度类型三

4).混合类型

把上面的三种类型混合来使用。

1.2日期维

它是数据仓库必须有的维度,包含日期,日期所属的周,月,季度,年等信息。

1.3角色维

 相同的维度表在维度模型中扮演不中的逻辑角色,一般通过创建视图来表示。

1.4杂项维

如果每个属性值都很少,可以把这些维度的组合起来生成一个维度表。

杂项维度

1.5支架维

 如果维度之间是一对多的关系或区别于原维度的多个描述性维度属性,可以建雪花型支架维度。

支架维度

1.6多值维度桥接维

多值维度桥接维

如果二个维度表是多对多的关系,可以使用多值维度设计。

1.7微型维

微型维度表

 一个大型维有些属性变化比较频繁,把这些属性单独生成一个微型维度表。

 1.8缩小维

它是维度表的一个子集或部分属性。

1.9查找维

系统里代码表里维度信息。

1.10层次维

有些维度表是有层次结构的,可以通过视图生成树形结构的维度表。


层次维

还需要注意,手工维护的维表,有些数据不在业务系统里,需要业务用户手工维护的维度表。


三、维度建模核心:一致性维度和事实

企业数据仓库应该建立一致性维度和事实,而不是为每个部门建立维度和事实。

3.1、一致性维度

维度一直是大家所熟知的,但是前面加上了“一致性”之后便成了数据仓库特有的一类维度表,其实一致性维度在表结构和属性都没有本质的区别,有一点的差异是数据仓库的星型模型会使得维度表有一定的冗余。那么一致性体现在哪里呢:维度共享性。共享性体现在整个平台或整个部门共用维度,而不仅仅只是单纯某个业务单独使用。 一般的维度并没有把共享性作为一个共性的标准。然而在维度建模中,一致性维度将作为重心来做。数据仓库70%的工作量和复杂度是用在构建一致性维度。一致性维度将作用于数据仓库和数据集市甚至是OLAP。

3.2、一致性事实

指每个度量在整个数据仓库中都是唯一的统计口径,为了避免歧义,一个度量只有唯一的业务术语。一致性事实在建立多个数据集市时,完成一致性维度的工作就已经完成了一致性的80%-90%的工作量。余下的工作就是建立一致性事实。 一致性事实和一致性维度有些不同,一致性维度是由专人维护在后台,发生修改时同步复制到每个数据集市,而事实表一般不会在多个数据集市间复制。需要查询多个数据集市中的事实时,一般通过交叉探查来实现。为了能在多个数据集市间进行交叉探查,一致性事实主要需要保证两点。第一个是KPI的定义及计算方法要一致,第二个是事实的单位要一致性。如果业务要求或事实上就不能保持一致的话,建议不同单位的事实分开建立字段保存。

四、维度模型设计方法

维度模型设计方法

维度建模方法就讲解到这里。下一篇我们开始来数据仓库的ETL过程。本文中如有错误或误导的地方欢迎大家指出纠正。希望这篇文章能够给大家带来帮助,最后感谢大家的阅读。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 遵循这些原则进行维度建模可以保证数据粒度合理,模型灵活,能够适应未来的信息资源,违反这些原则你将会把用户弄糊涂,并...
    丨程序之道丨阅读 1,311评论 0 3
  • 数据仓库与Kimball维度建模概览 操作型系统与数据仓库 操作型系统:保存、更新、删除数据一般一次处理一个事物不...
    脐橙CC阅读 785评论 0 0
  • 1.总述 人类从“IT时代”进入“DT时代”。本书介绍了阿里巴巴的大数据系统架构,为了满足不断变化的业务需求,同时...
    奉先阅读 1,291评论 0 1
  • Just be yourself; you are wonderful. 只要做你自己就好,你是最好的。 Win ...
    HackerOnce阅读 1,030评论 0 2
  • 日更第66天 昨天说了孩子的小心思,其实最了解他们的应该是他们的妈妈或者最亲密的带养人,只是很多人不愿意费心思慢慢...
    诺诺爱苹果阅读 173评论 0 1