关于数据仓库模型的选取和大家进行一个讨论
4
各位朋友大家好,我做数据仓库有快3年的时间了,项目也做个几个,不大不小,相关资料也看了不少,现在想把自己的理解和大家进行一个讨论,想听听大家的看法,说的对错请大家指点。
1、首先关于星型和雪花型的选取,有的资料上推荐使用星型,有的推荐使用雪花,个人认为还是星型结构值得推荐,虽然有的时候使用雪花有他的优点,但是我个人认为,雪花的优点,星型结构也可以规划业务维度、ETL过程处理掉。作为大数据量的数据集、效率还是王道。星型的效率(层次结构一样)应该会远高于雪花,不知道我这么理解是否正确,请各位指点。
2、就是在MDX时,现在公司中有的人使用维度中的属性进行查询,而不是层次关系去查询,这样对执行MDX的效率有没有影响,是不是设计好的聚合就不会被使用到?请指点。
1、首先关于星型和雪花型的选取,有的资料上推荐使用星型,有的推荐使用雪花,个人认为还是星型结构值得推荐,虽然有的时候使用雪花有他的优点,但是我个人认为,雪花的优点,星型结构也可以规划业务维度、ETL过程处理掉。作为大数据量的数据集、效率还是王道。星型的效率(层次结构一样)应该会远高于雪花,不知道我这么理解是否正确,请各位指点。
2、就是在MDX时,现在公司中有的人使用维度中的属性进行查询,而不是层次关系去查询,这样对执行MDX的效率有没有影响,是不是设计好的聚合就不会被使用到?请指点。
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
13 个回复
BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2015-10-09 回答
赞同来自: BAO胖子 、笔竹 、梁勇
星型模型和雪花型模型没有绝对的谁好谁不好之分,都是维度建模的一种设计思想,只是看在什么情形下使用。
星型模型的提出主要是方便业务人员理解业务模型,通过什么样的维度来看数据,星型模型更加直观,并且查询效率高。雪花型模型对于业务人员来说直观程度不够,并且在查询上效率略低。
但是我来举一个反例。
日-月-年,产品-产品小分类-中分类-大分类,国家-省份-地区 加一个事实度量。如果每一个日,月,年类似于这样的都是一张维度表的话,就意味着这张事实表的外键涉及到上述所有的维度,变成 10 个外键维度和一个事实度量。可以想象一下这样的事实就如同一条蜈蚣一样形成了一个蜈蚣事实表,维度外键过多,虽然是星型模型但是实则并不好。
退一步说,这张事实表只关联到日,产品,地区这三个维度,日-月-年 成为日期维度的一部分属性,这种情况最终三个维度+一个事实,这种星型模型要稍微好一点。
我继续基于这个星型模型再来说明,我假设在产品维度中(产品-小分类-中分类-大分类) 假设小分类,中分类,大分类各有5个非重复的值,但是却有10W个产品。也就意味着在产品维度中,小分类-中分类-大分类差不多要重复10W次。 也就意味中如果要统计分类的量需要从这10W条里面做去重统计操作,这种做法我认为效率很低。
再次,如果小分类,中分类,大分类不仅仅是一个标签而且还包含着标签描述信息和其它的属性,可想而知在星型模型下的处理方式就只能扩展同样重复的字段,这种重复率随着需要补充描述的属性越多变得越高。反之,如果再把这些单个的小分类,中分类拉出去形成维度和事实度量值构成一个星型模型,就又回到我刚才说的蜈蚣表了。
所以,没有最好的设计,只有最合适的选择,我们就从上面的几个设计推演就能考虑很多星型模型的弊端,在很多时候不一定就是最好的。
关于第二个问题可以看看我的这篇文章 - http://www.flybi.net/blog/biwork/1084 微软BI 之SSAS 系列 - 维度的优化、灌木丛属性关系、以及自然层次结构与非自然层次结构的概念
老头子 - 专注是唯一的捷径 2015-10-09 回答
赞同来自: 梁勇 、BAO胖子 、jcwd520
BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-10-09 回答
赞同来自: 梁勇
相比雪花模型,星型模型最大的问题是会带来数据不一致的隐患,而当维度表很大时,这个就比较成问题。另外还有一个问题就是,星型模型创建时,忽略和维度与维度之间的关系的描述,而将这种关系都体现在数据里,如果没有很好的模型管理,年深日久这些信息就会丢失以及出现问题。
此外,报表下拉时,需要从小表中取数,而不能从大维表里面做distinct,所以小表还是非常有必要保留的。
星型模型的好处是,非常有利于诸如BO, Cognos, BIEE这类需要语义层搭建的报表工具,会使模型简单而易于维护,而且这种模式下自动生成的SQL更容易优化,如果都按3NF模式来建,很多时候模型复杂得难以维护。
另外,蜈蚣表产生的原因很多是为了解决多对多的问题,不完全是星型模型引起的,即使是雪花模型也会有类似的问题。
和@老头子 观点也有些不一致的地方,OLAP并不代表低并发, 对于全民BI的系统而言,并发查询是非常高的。而报表筛选一般没有静态写入下拉列表的模式,都是动态从表中获取。
BIANT 2016-02-03 回答
赞同来自: BIWORK
一般在工作中,没有太多的区分,都是混合着用比较多
天善_小龙 2015-10-10 回答
赞同来自:
有没有谁接触过其他的数据仓库模型的?
superboyli520 - 微软BI技术达人 2015-10-13 回答
赞同来自:
业务设计合理化才是DW的设计准则。
ZanarKand - 天生我才必有用 2015-10-14 回答
赞同来自:
王小米 - 永远在学习 2015-12-09 回答
赞同来自:
cognos小白 - 为Cogno而生 2016-01-20 回答
赞同来自:
哥本哈士奇 - 专注微软平台的商业智能解决方案 2016-01-30 回答
赞同来自:
Iven0814 - 不学BI不是好孩子。 2016-02-05 回答
赞同来自:
天涯浪子 - SSRS开发、数据仓库设计 2016-12-19 回答
赞同来自:
hl_zhang0912 2018-01-30 回答
赞同来自: