理解数据仓库中星型模型和雪花模型
在数据仓库的建设中,一般都会围绕着星型模型和雪花模型来设计表关系或者结构。下面我们先来理解这两种模型的概念。
(一)星型模型图示如下:
星型模是一种多维的数据关系,它由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。这也是我们在使用hive时,经常会看到一些大宽表的原因,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过join来组合数据,相对来说对OLAP的分析比较方便。
(二)雪花模型图示如下:
当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。雪花模型更加符合数据库范式,减少数据冗余,但是在分析数据的时候,操作比较复杂,需要join的表比较多所以其性能并不一定比星型模型高。
(三)星型模型和雪花模型的优劣对比:
属性 | 星型模型 | 雪花模型 |
---|---|---|
数据总量 | 多 | 少 |
可读性 | 容易 | 差 |
表个数 | 少 | 多 |
查询速度 | 快 | 慢 |
冗余度 | 高 | 低 |
对实时表的情况 | 增加宽度 | 字段比较少,冗余底 |
扩展性 | 差 | 好 |
(四)应用场景
星型模型的设计方式主要带来的好处是能够提升查询效率,因为生成的事实表已经经过预处理,主要的数据都在事实表里面,所以只要扫描实时表就能够进行大量的查询,而不必进行大量的join,其次维表数据一般比较少,在join可直接放入内存进行join以提升效率,除此之外,星型模型的事实表可读性比较好,不用关联多个表就能获取大部分核心信息,设计维护相对比较简答。
雪花模型的设计方式是比较符合数据库范式的理念,设计方式比较正规,数据冗余少,但在查询的时候可能需要join多张表从而导致查询效率下降,此外规范化操作在后期维护比较复杂。
(五)总结
通过上面的对比,我们可以发现数据仓库大多数时候是比较适合使用星型模型构建底层数据Hive表,通过大量的冗余来提升查询效率,星型模型对OLAP的分析引擎支持比较友好,这一点在Kylin中比较能体现。而雪花模型在关系型数据库中如MySQL,Oracle中非常常见,尤其像电商的数据库表。在数据仓库中雪花模型的应用场景比较少,但也不是没有,所以在具体设计的时候,可以考虑是不是能结合两者的优点参与设计,以此达到设计的最优化目的。
理解数据仓库中星型模型和雪花模型相关推荐
- 数据仓库的星型模型和雪花模型的区别以及优缺点
数据仓库的星型模型和雪花模型 星型模型 星型模型是维度模型最简单的形式,也是数据仓库以及数据集市开发中使用最广泛的形式. 星型模式由事实表和维度表组成,一个星型模式中可以有一个或多个事实表,每个事实表 ...
- 【数据仓库】——星型模型和雪花模型
一.概述 在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型.在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织. 当所有维 ...
- 星型模型和雪花模型 (数据仓库模型)
一.概述 在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型.在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织. 当所有维 ...
- 数仓中的星型模型和雪花模型
1.概念 在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的数据模型分为星型模型和雪花型模型.在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织. 当所 ...
- 星形和雪花模型_星型模型和雪花型模型比较
每个数据仓库都包含一个或者多个事实数据表.事实数据表可能包含业务销售数据,如现金登记事务所产生的数据,事实数据表通常包含大量的行.事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总, ...
- 数据仓库中的两大经典模型
在数据分析相关内容中,包括两大重要内容:一是底层数据系统建设内容,二是业务报表相关内容梳理.一是系统基础,二是基础之上的业务逻辑衍生. 在番茄风控之前的数据分析课程中,主要集中在以上的第二点即业务相关 ...
- 什么是星型模型和雪花型模型【转载】
在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型.在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织. 当所有维表都直接连 ...
- 星型模型和雪花型模型比较
一.概述 在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型.在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织. 当所有维 ...
- 星型模型和雪花型模型的区别
星型模型 当所有维表都直接连接到" 事实表"上时,整个图解就像星星一样,故将该模型称为星型模型,如图 1 . 星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连 ...
最新文章
- nacos 配置_SpringCloud Alibaba之Nacos配置中心
- java md5 16位解密_Java实现MD5(32/16位)大小写加密
- idea安装lua插件_IntelliJ EmmyLua 1.1.9发布,IDEA的Lua插件
- Django中的 返回json对象的方式
- keil中 code、data、idata的区别
- javaScript 中创建json/转换字符串为json
- 【WinRT】使用 T4 模板简化字符串的本地化
- 计算机视觉检测车牌号
- Tssd2019最新版下载地址和更新说明
- BOOTCAMP U盘安装WIN7一直显示无法创建可引导的USB驱动器
- 2022-2028全球与中国卡个性化设备市场现状及未来发展趋势
- 计算机机房的消防验收,机房消防标准方案.doc
- Wince 7.0 远程控制工具的使用
- win10设置锁屏密码_【Win10 技巧】把手机当成电脑一对一专属密匙,人机分离自动锁屏...
- (C++)将8000秒换算成小时分钟秒的形式
- 智能井盖被纳入《城市综合管廊运营服务规范》国标,喜大普奔
- three后期处理与多通道渲染
- 前端开发 SSR 是什么技术?
- 高效时间管理的18个黄金法则
- 装饰模式实例与解析 实例一:变形金刚
热门文章
- 浅谈北京市IT行业现状及就业前景——暑期实践调研
- nginx: [emerg] open() /var/run/nginx/nginx.pid failed (2: No such file or directory)解决方法
- 8583协议报文例子。
- VMware虚拟机挂载宿主机共享目录
- 明日之后、“吃鸡”为何成为爆款手游?我们帮你分析了10000条快手广告
- QObject::killTimer: Timers cannot be stopped from another thread
- 快手版-CentOS7系统安装配置图解教程
- 实现表格内容第一行居中,其他行与第一行左对齐
- 网页计算机谈音乐,如何用windows电脑录制网页上或电脑中自己的音乐
- 人工神经网络具有的基本属性是什么?