三大数据模型:星型模型、雪花模型、星座模型

星型模型

星型模型中只有一张事实表,以及0张或多张维表,事实表与维表通过主键外键相关联,维表之间不存在关联关系,当所有维表都关联到事实表时,整个图形非常像一种星星的结构,所以称之为“星型模型”。

  • 星型模型是最简单最常用的模型。星型模型本质是一张大表,相比于其他数据模型更合适于大数据处理。其他模型可以通过一定的转换,变为星型模型。
  • 星型模型的缺点是存在一定程度的数据冗余。因为其维表只有一个层级,有些信息被存储了多次。比如一张包含国家、省份、地市三列的维表,国家列会有很多重复的信息。

雪花模型

  1. 当一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的"层次"区域,这些被分解的表都连接到主维表而不是事实表。

  1. - 其优点是通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能,避免了数据冗余。
  2. - 其缺点是增加了主键-外键关联的几率,导致查询效率低于星型模型,并且不利于开发。

星座模型

  1. 星座模型也是星型模型的扩展。区别是星座模型中存在多张事实表,不同事实表之间共享维表信息,常用于数据关系更复杂的场景。其经常被称为星系模型。
  2. 对比

  1. 总结
  2. 通过上面的对比分析,可以发现数据仓库更适合使用星型模型来构建底层数据 hive 表,通过数据冗余来减少查询次数以提高查询效率。雪花模型在关系型数据库中(MySQL/Oracle)更加常见。在具体规划设计时,应结合具体场景及两者的优缺点来进行设计,找到一个平衡点去开展工作。

#数开##数仓开发##校招##数据人的面试交流地##牛客创作赏金赛##投票#

数据脉冲之路【数开、数仓】

全部评论

相关推荐

11-07 12:17
已编辑
门头沟学院 golang
1.go中goroutine的调度机制,即GPM模型?2.详细说说这个调度的机制,从不同的角度?底层数据结构,协程的构建,从产生到最终销毁是怎么调度的一个过程,然后在里面的话?这个有多个协程,协程之间是怎么互相进行调度的?3.网络相关的知识,有一个TCP的游戏客户端,建立了一个长连接请求,由于某种情况或者bug导致异常退出了,当客户端异常退出后,服务端能感知到异常吗?4.假如说没有TCP Keep-Alive的这种机制?服务端可以感知到客户端的流程是什么样的?如果服务端没有发送数据呢?5.从刚才讨论的话题展开,你觉得从客户端的这个操作系统OS层面,一个详细的操作系统会做哪些事情?假如说客户端的进程异常退出了,操作系统会做哪些事情?操作系统会做一些回收吗?那你觉得在做这个过程中,对方即服务端能感受到异常吗?6.登入到一台linux服务器上,发现大量tcp连接处于time_wait状态,是什么原因导致的?有哪些场景导致的?7.登入到一台linux服务器上,发现大量进程跑在这个机器上,可能进程会越来越多,物理内存可能越来越少,对服务器上跑的服务,有什么影响?8.如果我们想要实现一个高并发的服务,我们采用多线程的方式,8核16g的机器上,你觉得我们线程的数量是开多少合适的?(和IO时间密切相关)9.聊聊中间件,redis中可以高并发的响应的设计?即为什么redis快?10.IO多路复用,epoll在操作系统是怎么实现?整体思路是什么样的?数据结构?异步召唤的模式?11.redis中的数据持久化机制?12.redis中的RDB和AOF都适用于什么样的业务场景?无算法智力题:1.《决胜21点》电影中的场景。主持人在桌子上放三个倒扣的杯子,三个杯子下面只有一个杯子有硬币,你的目标是找到含有硬币的杯子。一开始,你可以从三个杯子任意选择一个,放在你旁边,但不能查看。然后桌子上还剩两个杯子,主持人从两个杯子中拿掉一个空杯子。此时桌子上还有一个杯子,你旁边还有一个杯子,请问是否选择交换?2.30个关键词,就是一些随机的中午词组,比如你好,浏览器,参加,这些词并不一定是常见的词,也可以选择一些字,拼在一起,比如选择猪,屏,合起来就是“猪屏”。一亿篇文档,文档里面就是800~1500左右的文章,段一段的文章,让你设计一个程序去统计出来这30个关键词,在一亿篇文档中出现的次数,效率要尽可能高?反问:做什么业务?面试这个岗位,你觉得需要什么的特质和品质,才能胜任这个岗位?
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务