10年前做了一个项目用了数据仓库模式,今天回顾一下是使用了星型模式。当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型。
如图 1 。
星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余,如在地域维度表中,存在国家 A 省 B 的城市 C 以及国家 A 省 B 的城市 D 两条记录,那么国家 A 和省 B 的信息分别存储了两次,即存在冗余。
还有一种模式是雪花模式,对地域模式更进一步优化为国家-省份-市三张更小的维度表,节省了存储空间和冗余。如图:
那当时为什么没有选择雪花模式而选择了星型模式呢,主要考虑到当时存储空间是足够的,系统更多的操作是查询,星型模式查询效率更高,不需要关联多张维度表,更符合我们当时系统的设计模式。
所以并不是细化为更深的维度更好,要考虑系统具体的实现,毕竟关联一直是让人不那么喜欢!