最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

维度建模误区(第一篇)

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-15 16:53:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一、文章概述

刚转型到互联网公司的同学受到规范化建模的思想根深蒂固,往往会计较几个字段的存储资源,采用非常规范的建模方式。笔者一直在有意识的打破传统建模规则,我们需要重点关注模型的易用性和性能,而不是几个字段的存储资源。


二、具有规范化的雪花型模式

带有重复文本的扁平化非规范化维度表,通常会使来自操作型建模世界的同学感到不舒服。他们会认为把所有描述符都规范地放入到不同的维度表中,不但能节省空间,而且杜绝了冗长的描述符。此外,他们还认为维度表越规范越容易管理。例如,如果部门发生变化,只需要维护部门维度表,而不用维护包含部门信息的上万行产品维度表。


规范化的维度表被称为雪花模型。冗余属性从偏平非规范化维度表中移除,放置在不同的维度表中。


雪花模式是维度建模的合法分支,然而我们强烈抵制雪花模型的动机就是:易用性和性能。

  • 众多的雪花模型构成了一个复杂的结果。数据分析师和数据开发同学不得不关联这么多表才能取到想要的数据。简单化是维度建模的目标之一。

  • 多数数据执行优化器需要考虑雪花型的复杂度。在hive中,多关联一张表会增加一个job。大量的job会导致任务执行缓慢。

  • 雪花模型的维度表节省的空间并不明显。目前采用的ORC存储结构是列式存储,能节省很多空间;其次是维度表的数据条数和事实表相比非常小,可以忽略不计。

  • 规范化雪花模式维度表不利于多属性浏览。



三、支架表

一般情况下我们不推荐使用雪花模式,但在某些情况下还是可以使用的。如下,可以在某个基本维度表之外建立一个附加的支架维度。


在某些情况下,基本维度表上的指向支架维度的外键的存在导致基本维度爆炸性增长。通常的做法是将支架表中的外键放入事实表中,而不是放在基本维度表中,如下

注意:尽管可以使用支架表,但出于其潜在的影响考虑,维度模型设计尽量不要使用支架表。


四、包含大量维度的蜈蚣事实表

如果不是在事实表上面建立单一的产品外键,而是将产品层次上频繁分析的元素也当成外键,例如,品牌、分类、部门;同样将日期划分为连接不同周、月、季度、年维度表的键。这样原先紧凑的事实表变成了连接大量维度表的怪物,我们将这种事实表称为蜈蚣事实表,因为它们可能会有100条腿。


多数业务过程的事实表不能超过20个维度,如果超过25个维度,需要做维度合并。例如,层级级别,以及具有统计相关性的属性,都应该放在一个维度中。


作者:清和 来源:大数据漫路求索


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-2 05:33

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表