首页 » 软件优化 » 数仓建模方法(模型范式维度雪花事实)

数仓建模方法(模型范式维度雪花事实)

萌界大人物 2024-10-29 01:38:12 0

扫一扫用手机浏览

文章目录 [+]

星型模型

看下图你就知道为啥叫星型模型了,就是抽象出来的样子像一颗星星。

如果你足够仔细,其实就能发现星型模型,乃至于维度模型的秘密。

数仓建模方法(模型范式维度雪花事实) 软件优化
(图片来自网络侵删)

在维度模型的设计理念中,数据工程师把所有的业务操作抽象成两类:

一类是业务操作时,需要的一些基础信息,也就是事实发生的前提。
比如商品列表、商家信息等;一类是业务操作结果的记录,也就是当时事实的记录结果,所以叫事实,对应的表就叫事实表。
比如上图中的订单事实表,就是记录了当时这个订单发生的所有事实,比如你买了几个东西,多少钱等。

这两类信息必须关联起来,才能形成完整的交易链条。
这两类信息画成图,就是中间是事实表,四周是维表,中间用代码连接。
整个形状像是一个星星一样,所以叫星型模型。

雪花模型

我朋友圈里全是聪明人,所以不看图你也应该能猜到,雪花模型为啥叫这个名字了。
是的,没错!
就是因为形状像雪花。

逻辑跟星型模型是一样的,事实表、维度表。

在关系型数据库中,那时候存储还比较贵,磁盘很小,所以每一份数据都要尽量少存一些,所以当时会严格按照三范式的要求,把每一个属性都单独抽成表。
以全国的三级行政区划表为例,如果是一张表,三个列,就是省代码、省名称、市代码、市名称、县代码、县名称,省代码和省名称会重复非常多次。
拆成三张表,就是一张省表、一张市表、一张县表,省表里有三十几条数据,市表里几百条数据;县表里就几千条数据。

另外一个好处就是表间关系就非常清晰,看到雪花模型图,一眼就能看明白整个架构有哪些内容,各自的关系是怎样的。

星系模型

雪花模型还有一个变种,叫做星系模型(星座模型),其实就是多个雪花模型连在一起。

如上表所示,上下是订单和营销两个雪花模型,两片雪花通过两个事实表连接在一起,形成一个星系。
另外,在星系中还会对每个雪花中相同的维度进行抽象,比如地区维度,这时候星系就会很复杂,上图中为了保持简洁,并没有体现这种情况。

宽表模型

前面讲过三范式。
严格按照三范式的规则设计出来的表就是窄表,每张表只说一件事情,如果顺带说了其他事情,就要拆表。
相对于窄表来说,一张表中说了好几个事情,好几个概念,就是宽表了。
宽表其实就是三范式的退化。
宽表在关系型数据库中是异类,但是在NoSQL数据库中大行其道。

上图就是用三个窄表解决了订单业务数据存储。
优点是关系非常清晰,一眼能看明白实体以及之间的关系。

上表就是一张大宽表,冗余了卖家和买家的信息。
开发、数据分析师非常友好,不用join,直接拖数据就好了。

标签:

相关文章

化工原料行业发展趋势及市场前景分析

随着我国经济的持续增长和工业化进程的加快,化工原料行业在我国国民经济中的地位日益重要。近年来,我国化工原料行业呈现出稳步发展的态势...

软件优化 2024-12-25 阅读0 评论0

后缀协议,数字时代的新型合作模式

随着信息技术的飞速发展,网络已经成为人们生活中不可或缺的一部分。在这个数字时代,后缀协议作为一种新型的合作模式,逐渐崭露头角,成为...

软件优化 2024-12-25 阅读0 评论0

游戏跑得快(这款游戏跑得快联众我也)

我那时在金额单位上班,就是在一家储蓄所里当一线柜员,给储户办理存取款业务,也就是那时候所里刚刚上电脑办理业务,要求我们打汉字速度要...

软件优化 2024-12-25 阅读242 评论0

代码B站,开启编程学习之旅的“智慧之门”

在数字化时代,编程已成为一项至关重要的技能。对于初学者而言,如何高效地学习编程,成为了摆在面前的一道难题。而B站(哔哩哔哩),这个...

软件优化 2024-12-25 阅读1 评论0