常见数据仓库模式参考
一、概述
多维数据模型是更流行的数据仓库的数据模型,多维数据模型最典型的数据模式包括星型模式、雪花模式和事实星座模式,本文以实例方式展示三者的模式和区别。
二、星型模式(star schema)
星型模式的核心是一个大的中心表(事实表),一组小的附属表(维表)。星型模式示例如下所示:
三、雪花模式(snowflake schema)
雪花模式是星型模式的扩展,其中某些维表被规范化,进一步分解到附加表(维表)中。雪花模式示例如下图所示:
从图中我们可以看到地址表被进一步细分出了城市(city)维。supplier_type表被进一步细分出来supplier维。
四、事实星座模式(Fact Constellation)或星系模式(galaxy schema)
数据仓库由多个主题构成,包含多个事实表,而维表是公共的,可以共享,这种模式可以看做星型模式的汇集,因而称作星系模式或者事实星座模式。本模式示例如下图所示:
如上图所示,事实星座模式包含两个事实表:sales和shipping,二者共享维表。
五、总结
事实星座模式是数据仓库最长使用的数据模式,尤其是企业级数据仓库(EDW)。这也是数据仓库区别于数据集市的一个典型的特征,从根本上而言,数据仓库数据模型的模式更多是为了 避免冗余和数据复用 ,套用现成的模式,是设计数据仓库最合理的选择。当然大数据技术体系下,数据仓库数据模型的设计,还是一个盲点,探索中。
最近在做大数据技术体系下的数据仓库模型设计,重温数据传统数据仓库的关键技术和数据模型,有感兴趣的可以一起讨论,共同学习。
数据仓库有哪些模型?举例说明
1、星型模型
星型模型是一种由一点向外辐射的建模范例,中间有一单一对象沿半径向外连接到多个对象。星型模型反映了最终用户对商务查询的看法:销售事实、赔偿、付款和货物的托运都用一维或多维描述(按月、产品、地理位置)。星型模型中心的对象称为“事实表”,与之相连的对象称为“维表”。对事实表的查询就是获取指向维表的指针表,当对事实表的查询与对维表的查询结合在一起时,就可以检索大量的信息。通过联合,维表可以对查找标准细剖和聚集。
2、雪花模型
雪花模型是对星型模型的扩展,每一个点都沿半径向外连接到多个点.雪花模型对星型的维表进一步标准化,它的优点是通过更大限度的减少数据存储量以及把较小的标准化表(而不是大的非标准化表)联合在一起来改善查询性能。化及维的较低的粒度,雪花模型增加了应用程序的灵活性。
3、混合模型
混合模型是星型模型和雪花模型的一种折衷模式,其中星型模型由事实表和标准化的维表组成,雪花模型的所有维表都进行了标准化。在混合模型中,只有更大的维表才进行标准化,这些表一般包含一列列完全标准化的(重复的)数据。
数据仓库的模型有哪些?
1. 星型模式
星形模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:a. 维表只和事实表关联,维表之间没有关联;b. 每个维表主键为单列,且该主键放置在事实表中,作为两边连接的外键;c. 以事实表为核心,维表围绕核心呈星形分布;
2. 雪花模式
雪花模式(Snowflake Schema)是对星形模式的扩展。雪花模式的维度表可以拥有其他维度表的,虽然这种模型相比星型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模型要低。所以一般不是很常用
雪花模式
3.星座模式
星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式是基于多张事实表的,而且共享维度信息。前面介绍的两种维度建模 *** 都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后期,绝大部分维度建模都采用的是星座模式。
星座模型