数据仓库-维度建模

article/2025/9/28 10:07:22

目录

1. 数据仓库定义

2. 数据仓库和数据库

3. 数仓分层

4. 维度建模

4.1 维度建模 VS 第三范式

4.2 维度建模设计过程

5. 粒度概念

6. 事实概念

6.1 事实表技术

7. 维度概念

7.1 维度表技术

8. 数据关系模型

8.1 星型模型

8.2 星座模型

8.3 雪花模型

9. 写在最后


1. 数据仓库定义

        数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

2. 数据仓库和数据库

数据库主要用于事务处理,数据仓库主要用于数据分析。联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)

3. 数仓分层

数仓分层是数仓建设中的重要环节,详细介绍见数仓分层架构。

4. 维度建模

数据仓库实现了海量数据的存储,但是如何对这些数据进行有效的分析挖掘,就需要对数据进行建模,使数据具有结构。数据建模有很多种方式,维度建模是业界应用较多,被大多数人接受的一种技术。

维度建模的思想源于我们的现实世界,物理世界中天然的具有「事实」和「维度」的概念。事实一般表示事物的度量,维度是描述事实的环境,属性信息。用于描述与“Who,When,Where,What,Why,How”有关的信息。

例:订单数据

在订单数据中,如果要使用维度建模技术来构建数据模型,则订单为事实,描述订单的用户,时间,地点,商品,商家,渠道等都是订单事实的维度。

4.1 维度建模 VS 第三范式

维度建模:以商业用户可理解的方式发布数据;提供高效的查询性能。以需求驱动,自底向上建设 。

第三范式:数据规范、分散,数据统计需要更多的关联。以数据驱动,自顶向下建设。        

4.2 维度建模设计过程

  • 选择业务过程:组织完成的操作型活动,比如:搜索结果、意向浏览、生成订单

  • 声明粒度:粒度用于确定某一事实表中的行代表什么。不同的事实表粒度,要建立不同的物理表,在同一事实表中不要混用多种不同的粒度

  • 确认维度:业务过程所涉及的“谁、什么、何处、何时、为什么、如何”等背景。维度表包含应用所需的用于过滤及分类事实的描述性属性

  • 确认事实:业务过程事件的度量,基本上都是以数量值表示。所有事实只允许与声明的粒度保持一致。

5. 粒度概念

数据粒度,是指数据仓库中数据的细化和综合程度。根据数据粒度细化标准:细化程度越高,粒度越小;细化程度越低,粒度越大。一般来说,数仓底层的粒度较细,包含的信息较为具体,上层数据的粒度一般较粗,信息较为抽象。举个🌰:

明细层--用户交易明细表:粒度为 「用户*订单」

user_idnameageorder_pk(订单编号)
001zhangsan18aaa
001zhangsan18bbb
002lisi19ccc

 主题层--用户主题表:粒度为 「用户」

user_idnameageorder_cnt(订单数量)
001zhangsan182
002lisi191

应用层--用户总下单量(指标):粒度为 「所有用户」

user_cntorder_total_cnt
23

上述例子可以看出,通常情况下底层数据粒度较低,包含信息较为详细(低粒度的数据可以包含粗粒度的信息,反之则不行),上层数据的粒度越来越粗,包含的信息越来越抽象,越来越有针对性,应用层的数据是直接面向客户的,具有业务含义。

6. 事实概念

发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。事实表的一行数据对应一个度量事件。事实表总是包含外键,用于关联与之相关的维度,也包含一些退化维度(如时间等)。

6.1 事实表技术

  • 事实类型:可加、半可加、不可加

  • 一致性事实:某些度量出现在不同的事实表中,应保证针对事实的技术定义是相同的。如果不同的事实表定义是一致的,则这些一致性的事实应该具有相同的命名

  • 无事实的事实表:某些事件仅仅记录一系列某一时刻发生的多维实体。例如:在某一天中用户发生的搜索事件

  • 聚集事实表:对原子粒度事实表数据进行简单的数字化上卷操作,目的就是为了提高查询性能。

  • 合并事实表:将来自多个过程的,以相同粒度表示的事实合并为一个单一的合并事实表,这样做能够带来方便 。

7. 维度概念

每个维度表都包含单一的主键字段。维度表的主键可以作为与之关联的事实表的外键(例如:销售事实表中的地址外键字段也就是地址维度表中的主键字段)。维度表通常是一个宽表(字段多),是扁平型的非规范表,包含大量低粒度信息。

7.1 维度表技术

  • 退化维度:维度除了主键没有其他内容。例如:订单事实表中的订单编号。

  • 杂项维度:商业过程通常会产生一系列混杂的、低粒度的标识和指示器。与其为每个标识或属性定义不同的维度,不如建立单独的将不同维度合并到一起的杂项维度。比如:

    杂项id性别班级年纪
    1A1
    22
    3C3
  • 支架维度:维度可包含对其他维度的引用。支架维度可以使用,但是尽量少用。多数情况下,维度之间的关联应该由事实表来实现。在事实表中通过两个维度的不同外键相关联

  • 多值维度与桥接表:某些情况下,维度存在合理的多值。在此情况下,多值维度必须通过一组维度建通过桥接表使一组中的单个维度与事实表一行关联。

  • 一致性维度:当不同的维度表的属性具有相同列名和领域内容时,称维度表具有一致性。利用一致性维度属性与每个事实表关联,可将来自不同事实表的信息合并到同一报表中。比如:在意向表,订单表,支付表中,商户就是一个一致性维度。通过「商户」这个一致性维度,可以讲意向,订单,支付等事实合并起来。

8. 数据关系模型

在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织。

8.1 星型模型

当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型

  

PS:PK就是主键的意思。

8.2 星座模型

由多个事实表组合,维表是公共的,可以被多个事实表共享。星座模型是数据仓库最常使用的模型。

如下图所示,订单事实表和支付事实表都连接到地址维度,这种关系模型就称为星座模型。地址维度也叫做订单事实和支付事实的共享维度,一致性维度。

8.3 雪花模型

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

如下图,红色框内的维度表没有直接连接到事实表中,而是通过地址维度表连接事实表,这种关系模型就叫做雪花模型。

9. 写在最后

在数据仓库中,如何划分层次,主题。如何选择关系模型,都是要根据实际业务情况而定,脱离业务谈建模就是纸上谈兵。


http://chatgpt.dhexx.cn/article/dJ7qmwrX.shtml

相关文章

维度建模详解

文章目录 1 维度设计1.1 代理键(太复杂,不推荐)1.2 稳定维度1.3 缓慢渐变维 > 拉链表1.4 维度表的拆分、合并 2 事实表设计2.1 明细事实表(dwd)2.1.2 案例:2.1.3 存储方案2.1.4 事实拉链表示例: 2.2 聚合事实表(dws)2.2.1 分类2.2.2 案例 …

老司机带带我:数仓建模架构|维度建模剖析与案例演示

作者基于多年的大数据处理经验,当前管理着100PB数据仓库和2000节点的集群。持续系统化给大家分享一下关于数据仓库建设的经验总结。本系列既有数据仓库的形而上学理论体系,也有结合公司业务的实践,既有大厂如阿里巴巴,京东&#x…

维度建模入门

1 概念 维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。数据集市可以理解为是一种"小型数据仓库"。 1.1 维度表(dimension) 维度表示你要对数据进行分析时所用的一个量,比如你要分析产品销售情况, 你可以选择按类别来进行分…

数据仓库——维度建模

数据仓库——维度建模 在维度建模中,将度量称为“事实”,将环境描述为“维度” 维度表 维度表概念 维度是维度建模的基础和灵魂。在维度建模中,将度量称为“事实”,将环境描述为“维度”,维度是用于分析事实所需要…

维度建模基本流程总结

一、维度建模基本流程图 数据RD进行业务调研和数据现状调研,产出符合相关模版规范的业务知识文档和数据现状文档。数据PM也会调研相关业务产出需求设计文档,三方参与需求评审,评审通过后基建数据RD进行需求拆解,产出技术方案&…

维度建模的基本理论

维度建模 围绕三个问题来展开 1、怎么组织数据仓库中的数据? 2、怎么组织才能使得数据的使用最为方便和便捷? 3、怎么组织才能使得数据仓库具有良好的可扩展性和可维护性? 维度建模两大派系 Bill Inmon(数据仓库之父) 的企业…

Kimball 维度建模理论

一、维度建模分为两种表 事实表 存在这样一些数据,如行为记录,操作记录,订单,日志等,都可以作为事实表 特点:每条数据都有一个唯一键,数据通常来说不会更新,随着时间的增加而增加维…

维度建模示例

以库存模块和零售模块这两个模块来谈一谈维度建模的相关事项梳理库存业务中的表的构造与设计思想梳理一下缓慢变化维的处理方法与优缺这篇博客计划用周末来完成,只能简单的讨论一下建模概况,从维度建模这本书中摘录出一些重要的知识点,对于维度建模这本书的报告计划在5.1之前完…

浅谈维度建模

前言:本人作为BI方向相关的数据系统后端开发,虽然不是从事具体的数仓方面的工作,但是对维度建模过程有个大致了解,可加深对于系统现有的架构设计的理解(比如数据模型构建,指标库的作用)&#xf…

关系建模与维度建模

一、OLTP与OLAP 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-linetransaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。 OLTP是传统的关系型数据库的主要应用,主要是…

数仓维度建模实例

简介 本文将介绍维度建模理论和基于自己经验的实施步骤 数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据....只有数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用。一般业务…

数据仓库-基础知识(维度建模)

一、数据仓库概述 1.1 数据仓库定义 数据仓库:Data Warehouse,是为企业所决策制定过程,提供所有支持类型的数据集合。用于分析性报告和决策支持。数仓是一个面向主题、集成的、相对稳定、反应历史变化的数据集合,随着大数据技术的…

数仓:维度建模

1.背景 数据仓库的核心是展现层和提供优质的服务。ETL 及其规范、分层等所做的一切都是为了一个更清晰易用的展现层。 2.数仓架构的原则: 1、底层业务的数据驱动为导向同时结合业务需求驱动 2、便于数据分析屏蔽底层复杂业务简单、完整、集成的将数据暴露给分析层…

数仓建模(维度建模)

目录 一、什么是建模?(为什么建模) 二、模型的好处 三、建模的方法 四、维度建模 4.1 基本概念 4.2 为啥选择维度建模(优缺点) 4.2.1 优点 4.2.2 缺点 4.3 维度建模-星型模型 4.4 维度建模-维度 4.4.1 维度之…

维度建模的三种模式

1.星型模式 星型模式是维度模型中最简单的形式,也是数据仓库以及数据集市开发中使用最广泛的形式。 星型模式由事实表和维度表组成,一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表。 星型模式的物理模型像一颗星星的形…

维度建模概述

1、维度建模 维度建模以分析决策的需求出发构建模型,构建的数据模型为数据分析服务。它重点解决如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。 因此,说白了,所谓的维度建模就是一种组织数据仓库的形式、模型…

ETL自学之路-02(维度建模)

一、维度建模的基本概念 1.1维度建模的定义 维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法,数据集市可以理解为是一种小型的数据仓库。 1.2 维度表(dimension) 维度表示你…

维度建模

维度建模 维度模型简介 维度建模被广泛接受为数据分析的首选技术,因为它同时满足了两个需求: 1.向用户交付可以理解的数据 2.提供快速查询的性能 维度建模实体建模第三范式(3NF)建模适合表连接以及聚合计算的查询请求&#xff1…

数据模型建设-维度建模详解

5.2 维度建模 维度建模是一种将大量数据结构化的逻辑设计手段,包含维度和指标,它不像ER模型目的是消除冗余数据,维度建模是面向分析,最终目的是提高查询性能,所以会增加数据冗余,并且违反三范式。 维度建…

绘制彩色图的颜色直方图

计数直方图 在Opencv中已经集成了关于彩色图像直方图计算的函数,形式如下: import cv2cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]])参数 images:array-like类型,要计算的图像(单张或多张)&a…