转载:数据仓库中的星型模型和雪花模型 https://cloud.tencent.com/developer/article/1122464
一、星形表
事实表和一组维表构成,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过join来组合数据。
二、雪花表
雪花表是事实表的衍生品,当维表不直接连接到事实表的时候,就称为是雪花表。
三、星形表和雪花表的对比
四)应用场景
星型模型的设计方式主要带来的好处是
- 能够提升查询效率,因为生成的事实表已经经过预处理,主要的数据都在事实表里面,所以只要扫描实时表就能够进行大量的查询,而不必进行大量的join,
- 其次维表数据一般比较少,在join可直接放入内存进行join以提升效率,
- 除此之外,星型模型的事实表可读性比较好,不用关联多个表就能获取大部分核心信息,设计维护相对比较简答。
星型模型的设计方式是比较符合数据库范式的理念,设计方式比较正规,数据冗余少,但在查询的时候可能需要join多张表从而导致查询效率下降,此外规范化操作在后期维护比较复杂。
(五)总结
通过上面的对比,我们可以发现数据仓库大多数时候是比较适合使用星型模型构建底层数据Hive表,通过大量的冗余来提升查询效率,星型模型对OLAP的分析引擎支持比较友好,这一点在Kylin中比较能体现。而雪花模型在关系型数据库中如MySQL,Oracle中非常常见,尤其像电商的数据库表。在数据仓库中雪花模型的应用场景比较少,但也不是没有,所以在具体设计的时候,可以考虑是不是能结合两者的优点参与设计,以此达到设计的最优化目的。
数据仓库和数据集市的对比
转载:https://blog.csdn.net/xiaoyangsavvy/article/details/80420629