雪花模型和星型模型
根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。
星型模型概念
星型模型中只有一张事实表,0个或多个维度表,所有的维表都通过主键外键关联到事实表上,维表之间不存在关联关系,整个图形像一种星星的结构,所以称之为“星型模型”。星型模型强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。
优点:表个数少、可读性高、查询逻辑简单,查询性能高
缺点:存在一定程度的数据冗余。因为其维表只有一个层级,有些信息会被存储多次。比如一张包含国家、省份、地市三列的维表,国家列会有很多重复的信息。
雪花模型概念
当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。
优点:通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能,去除了数据冗余。
缺点:分析数据的时候,操作比较复杂,需要多表连接,查询性能低。
雪花模型和星型模型的区别
如何选择
雪花模型做维度分析更加容易,比如“针对特定的广告主,有哪些客户或者公司是在线的?”
星形模型用来做指标分析更适合,比如“给定的一个客户他们的收入是多少?”