【数仓建设系列之三】数仓建模方式及如何评估数仓完善性

news2025/1/10 3:08:44

【数仓建设系列之三】数仓建模方式及如何评估数仓完善性

上篇文章我们对数仓的分层架构及核心概念做了简单介绍,同时也指明DW层是数仓建模的核心层。本篇文章,将详细从常见的维度模型建设手段及如何评估数仓建设的完善性展开讨论。

一、数仓维度建模

​ 数仓维度建模是一种强大的方法,用于将复杂的业务现实映射到易于理解的数据结构中,它是构建数据仓库的核心技术之一,能够帮助企业将分散和不一致的数据整合到一个一致性高、可查询的数据存储中。通过将业务过程、维度信息和度量指标等要素转化为清晰的关系模型,揭示出隐藏在数据背后的模式和趋势。

​ 目前市面上主流的维度模型主要包含 :星型模型,雪花模型和星座模型,接下来我们将一一讨论每个模型的优劣势。

(1)星型模型

​ 星型模型是维度建模中最为常见且广泛使用的方法之一。它依赖于一张事实表和多张维度表。事实表为基本结构中心,周围环绕着多个维度表,这种形状类似于一个星星,因此而得名。在星型模型中,事实表中每一条数据都表示一个特定的业务事件或交易场景,内部数据是可以根据需求进行聚合的,而维度表则是描述业务事件的不同维度属性,可以是时间,地点,客户,产品等。这种模型使得查询和分析变得直观和高效,数据分析可以通过外键对两张表进行关联,轻松地从不同的角度分析数据。
在这里插入图片描述

  • 优势

​ 建模方式简单,结构清晰, 在简化查询和分析方面具有很大优势;

  • 不足:

​ 随着企业业务需求的不断扩张,分析场景会愈发复杂,这种简单的模型有时候在很大程度上并不能满足实际的需求,同时,如果不合理设置维度或定义数据结构,可能会导致数据冗余过大,引起性能瓶颈。

(2)雪花模型

​ 雪花模型在某种程度上是星型模型的一个变种,它也是基于一张事实表和多张维度表构建而成的。但它在维度表的设计上更加详细,通常会将一个维度表拆分为多个相关联的更细粒度的子维度表,这样做的目的是将维度表中的属性进行规范化,减少数据的冗余和提供数据的一致性。
在这里插入图片描述

  • 优势:

​ 减少了数据的冗余,因为维度表的属性被标准化并存储在单独的表中,可以提高数据的一致性,并降低存储成本。另外,雪花模型在某些情况下能够更好地应对高度规范化的业务需求,例如需要多个维度层次或者复杂的属性分组。

  • 不足:

​ 因为需要进行更多的维表关联,因此雪花模型的查询更为复杂,主要体现在SQL维护层面和查询耗时上。其次,从上图也能看出来,维表会随着业务事件的发展,不断扩张,所以就需要维护更多的表,在一定程度上,也增加了数仓维护的成本。

(3)星座模型

​ 星座模型是一种高度灵活的方法,它结合了星型模型和雪花模型的特点,旨在处理更为复杂的业务需求。它将多张维度表共享属性抽离出来,形成一张共享维度表,多张事实表共同关联共享维度表,减少数据的冗余,使得维表数据一致统一,也更方便维护。它适用于需要同时兼顾数据查询性能和数据标准化的场景,能够平衡数据冗余和灵活性之间的关系,因此可以适应多种不同的业务需求,企业数仓建模大多选择星座模型。

在这里插入图片描述

  • 优势:

​ 星座模型在设计时更加注重灵活性和性能,它将多个维度表中的共享属性抽取出来,放置在一个共享维度表中,这样可以减少数据冗余并提高维度数据的一致性。其次,事实表与维度表之间的关系更加直接,有助于提高查询性能,因此可以适应多种不同的业务需求。

  • 不足:

​ 模型的复杂性可能会增加查询的复杂性,同时维护共享维度表可能需要更多的注意和管理。

综上3种模型,我们可以看出,每种模型都有自己的优劣势,如何选择一款合适的模型是需要综合考量和评估业务需求,性能要求以及维护复杂性等因素的。我们在企业中可以灵活选择,最终的目的其实都是在尽可能不增加维护成本的前提下,更好的解决企业需求。

二、如何评估数仓建设完善性?

​ 上面主要讲述了数仓建模主流模型框架,每个企业都可以按需选择最符合自己需求的一个模型,但我们需要从以下几点考量一个数仓建设的完善性:

1.完善性

​ 完善性主要体现在数据的丰富度,简单描述就是每一层被其上层引用的次数和比例。比如ODS层被DWD层引用的表有多少,占ODS层所有表数量的比例是多少;DWD层的表被DWS层引用了多少,占DWD层总表数量的比例是多少,以此类推。其次,在建模过程中,完全不跨层引用是非常完美且理想的一种状态,但在实际过程中,却很难做到不跨层引用,因此,我们也可以适当统计跨层引用的比例是多少。除此之外,我们也可以统计上层表(DWS和ADS)表被引用查询的次数是多少,这也能从侧面反应出一张表的完善性如何。引用比例是一个正向值,值越高,说明上层建设的越完整,通过这种简单统计,我们就可以粗略估算出数仓建设的完整性。

2.高效性

​ 高效性主要包括开发高效性和查询高效性。开发高效性主要是说,我们在开发一个上层报表或查询接口时,能否减少底层建设?是否能够复用一些已经存在的维表或事实表,通过简单的关联,就能快速抽离出一张上层需要的汇总数据。查询高效性主要体现在做查询时接口耗时如何,当然,接口耗时的影响因素众多,抛开其他因素不谈,如果能在一定程度上减少表与表之间的关联,对查询效率的提升肯定是有很大帮助的。因为在企业中,很少会有单表查询的场景,大部分都需要进行关联查询得到最终结果。因此,我们需要采用一些维度退化的手段,尽量减少关联表的数量。

3.规范性

​ 规范性存在于各行各业。每个行业的规范性也各不相同,比如我们在java开发时,需要遵循开发的规范性,比如类名首字母大写,方法名见名知意等等。在数仓建设中,规范性主要体现在以下几点:分层规范性,库表规范性和字段规范性。

3.1.分层规范性:
  • 主要体现在分层数据表的结构是否清晰;

  • 上层数据能否屏蔽掉底层错误数据的影响;

  • 是否能够快速追踪数据血缘信息;

  • 维度表设计是否规范,是否能够提高复用性并减少数据冗余;

3.2.库表规范性:
  • 库表命名需要体现数据的含义和用途,数据从那个业务系统来,当前数据属于数仓哪个分层 ,准备把数据应用在哪个方面;

  • 表的数据模型,分区,分桶,副本数量和索引设置是否合理,是否能够容灾同时能够提高SQL查询性能;

3.3.字段规范:
  • 同一个字段在不同的表中,数据类型和命名是否一致;

  • 表与表之间的主外键能够清晰的从字段上明确;

  • 表中每个字段的维度,度量含义是否清晰等;

4.安全性:

  • 控制不同用户对库表的操作权限,比如针对A业务组的分析同学,只能看到A业务组下部分业务数据;

  • 不同分层的表权限也不一样,比如ODS层,数据分析同学,只能进行查看操作,不能修改表结构和增删数据;

  • 提供统一的访问接口,避免业务系统直连数仓

以上就是数仓建设完善性的部分指标描述,其实,在数仓建设中,还有很多需要我们去注意和控制的点,包括:数据生命周期管理,数据质量管理,数据审计和版本控制等等,每一块内容都需要我们不断的摸索和实践。

三、总结

通过本篇文章,我们基本了解了数仓模型分类和其优劣势,同时也对数仓完善性建设有了大概的认知。在实际生产环境中,需要我们不断的探索和踩坑才能满足和提高源源不断的复杂业务场景。接下来,将从数仓开发规范展开讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/928123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Azure - AzCopy学习

使用 AzCopy 将本地数据迁移到云存储空间 azcopy login 创建存储账号 ./azcopy login --tenant-id 40242385-c249-4746-95dc-4a0b64d49dc5这里的—tenant-id 在下面的地方查看:目录 ID;需要拥有Storage Blob Data Owner 的权限账号下可能会有很多目录&am…

SMC_TRAFOF_5Axes (FB)_标准龙门5轴

正计算: 电机位置》空间位姿 的正计算。 用于图形5轴控件的展示。 刀具长度 [u] 【脉冲当量】 电机转1圈是5毫米 电机转1圈要50000脉冲 如果刀具长5毫米,那么刀具长度u50000脉冲当量 输入输出: X轴 Y轴 Z轴 A轴【绕z轴旋转】东南西北方…

SFTP和SCP:哪种才是企业文件传输的可靠选择

文件传输在企业发展和业务拓展中越来越重要。为了保证数据的安全和传输的效率,企业需要选择合适、安全且高效的文件传输方式。在这种情况下,SFTP和SCP成为了企业文件传输的热门选择。 本文将详细介绍SFTP和SCP的特点,以及它们如何成为企业文…

ubuntu学习(四)----文件写入操作编程

1、write函数的详解 ssize_t write(int fd,const void*buf,size_t count); 参数说明: fd:是文件描述符(write所对应的是写,即就是1) buf:通常是一个字符串,需要写入的字符串 count:是每次写入的字节数…

【学习FreeRTOS】第19章——FreeRTOS低功耗模式Tickless

1.低功耗模式简介 很多应用场合对于功耗的要求很严格,比如可穿戴低功耗产品、物联网低功耗产品等一般MCU都有相应的低功耗模式,裸机开发时可以使用MCU的低功耗模式。FreeRTOS也提供了一个叫Tickless的低功耗模式,方便带FreeRTOS操作系统的应…

每日汇评:由于鲍威尔鹰派的讲话,黄金可能重新回到 1900 美元区域

1、金价暂停了四天的上涨趋势,但有望创下六周以来最好的一周; 2、在鲍威尔在杰克逊霍尔研讨会上发表讲话之前,美元恢复平静; 3、在 RSI 看跌的情况下,金价与 21 日移动平均线阻力位 1919 美元作斗争; 金…

免费PPT素材网站,我推荐这6个

找PPT素材、模板,就上这6个网站,免费下载,建议收藏~ 菜鸟图库 https://www.sucai999.com/search/ppt/0_0_0_1.html?vNTYwNDUx 菜鸟图库网有非常丰富的免费素材,像设计类、办公类、自媒体类等素材都很丰富。PPT模板种类很多&…

适配小程序隐私保护指引设置

由于小程序发布了一个公告,那么接下来就是怎么改简单的问题了。毕竟不太想大的改动历史上的代码。尽量简单的适配隐私策略就可以了。 整体思路也是参考现在App普遍的启动就让用户同意隐私策略,不同意不让用,同意了之后才能够继续使用。 公告…

英伟达挖走小鹏汽车高管吴新宙!何小鹏亲自送行 | 百能云芯

8月25日消息,英伟达公司挖来小鹏汽车自动驾驶副总裁吴新宙,任命他为自动驾驶产品主管,该职位将于8月25日正式生效。 据悉,小鹏汽车董事长何小鹏在个人微博上晒出了一张与吴新宙以及英伟达CEO黄仁勋的合影,并透露即将展…

访学、博后参考|加拿大十大名校简介

上期我们介绍了加拿大各省所在大学的分布情况,本期知识人网小编整理出加拿大十大名校简介,供申请者参考。 1、多伦多大学(University of Toronto)(University of Toronto)(University of Toront…

最新绕过目标域名CDN进行信息收集技术

绕过目标域名CDN进行信息收集 1.CDN简介及工作流程 CDN(Content Delivery Network,内容分发网络)的目的是通过在现有的网络架构中增加一层新的Cache(缓存)层,将网站的内容发布到最接近用户的网…

一次harbor升级导致镜像项目访问无权限问题

一、问题背景 将环境中现运行的harbor版本升级到2.6.2版本,相关同事升级完,发现有部分镜像项目点进去报无权限问题,镜像项目无法使用,但是也有部分项目是可以正常提供使用的。 二、问题处理过程 1、根据报错反馈没权限&#xff…

Thinkphp内核微信拼团购物商城小程序源码

Thinkphp内核开发的微信拼团购物商城小程序源码,支持微信支付,站长亲测完美。 下载地址:https://bbs.csdn.net/topics/616764816

电脑文件删除了可以找回吗?分享一种简单恢复删除电脑文件办法!

电脑文件删除了可以找回吗?可以。在原理上讲电脑删除的文件是有希望恢复的,因为操作系统在删除文件的时候并会不会立刻将文件彻底删除。当文件被删除的时候,其文件记录被删除,并且被文件占用的磁盘空间被标记为空闲。 这样对于用户…

【HCIP】16.MPLS LDP

LDP是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。 LDP的工作过程主要分为两部分: LSR之间建立LDP会话。LSR之间基于LDP会话…

半导体低压热氧工艺中的真空度精密控制解决方案

摘要:在目前的各种半导体材料热氧化工艺中,往往需要对正负压力进行准确控制并对温度变化做出快速的响应,为此本文提出了热氧化工艺的正负压力控制解决方案。解决方案的核心是基于动态平衡法分别对进气和排气流量进行快速调节,具体…

Java——一个Java实体类,表示一个试题的模型

这段代码是一个Java实体类,表示一个试题的模型。 该实体类具有以下属性: id:题号,表示试题的编号。title:题目,表示试题的题目内容。optionA:选项A,表示试题的选项A。optionB&#…

【智算中心】GPU是如何改变世界的

现在有市场消息表示,NVIDIA正计划减少A800 GPU的产量,以促进其更高端的H800 GPU 的销售。很显然NVIDIA是希望从H800 GPU上获得更多销售量,从中国市场获得更多利益。而且最近一段时间有传闻美国要彻底封杀AI芯片的出口,让国内甚至连…

错误:依赖检测失败: mysql-community-libs(x86-64) >= 5.7.9 被 (已安裝) mysql-community-li

错误: 错误原因:没有删除之前安装的依赖问题 解决办法: yum remove mysql-libs 再用下面指令检查一遍: rpm -qa | grep mysql 如果有还未清理的,用下面指令: rpm -e xxx

Huawei AP 3030DN Fit转换Fat

一、FTP软件下载与安装 二、下载bin文件,AP系统用 三、终端连接AP 四、传送文件 五、升级AP system-view ap-mode-switch prepareap-mode-switch check system-view ap-mode-switch prepare ap-mode-switch check ap-mode-switch ftp 3030dn.bin 172.21.1.250 t…