一、维度建模中最常见的建模形式是什么?
星型模型和雪花模型。
(还有个星座模型,星座模型就是反映有多个事实表,他们之间共享一些维度表。正常数据仓库都是多个事实表,所以没太大意义。)
二、星型模型和雪花模型的区别是什么?
星型模型和雪花模型的主要区别在于维度的层级,标准的星型模型维度只有一层,而雪花模型可能会涉及多层。
雪花模型比较靠近3NF(范式),但是无法完全遵守,因为遵守3NF的性能成本太高。
三、 星型模型和雪花模型如何选择?
选择星型还是雪花,要看注重哪方面,是性能优先还是灵活优先。性能优先就选星型模型,灵活性优先就选雪花模型。
星型模型由于表结构比较简单,维度表没有进行范式规范化,所以性能比较好。
雪花模型由于维度表进行了规范化,表拆的比较散,所以使用起来更加灵活。
项目中选择了维度更少的星型模型,最终呈现的状态为星座模型。因为在大数据的场景下,要尽量减少join操作,减少join就是减少shuffle。