数据仓库建模理论

宣胤

第1章 数据仓库概述

1.1 数据仓库概念(Data Warehouse)

数据仓库是一个为数据分析而设计的企业级数据管理系统。
是面向主题的、集成的、稳定的和时变的数据集合。
输入数据:业务数据,用户行为数据、爬虫数据。
数据仓库,将各个异构的数据源数据库的数据统一管理起来,并且完成了质量较差的数据的剔除、格式转换等预处理操作,最终按照一种合理的建模方式来完成源数据组织形式的转变,为企业制定决策,提供数据支持。可以帮助企业改进业务流程、提高产品质量等。

1.2 数据仓库核心架构

  • 原始数据层–ODS(ODSàOperation Data Store):存放未经过处理的原始数据,结构上与源系统保持一致,是数据仓库的数据准备区。
  • 明细数据层–DWD(DWDàData Warehouse Detail):基于维度建模理论进行构建,存放维度模型中的事实表,保存各业务过程中最小粒度的操作记录。
  • 公共维度层–DIM(DIMàDimension):基于维度建模理论进行构建,存放维度模型中的维度表,保存一致性维度信息。
  • 汇总数据层–DWS(DWSàData Warehouse Summary):基于上层的指标需求,以分析的主题对象作为建模驱动,构建公共统计粒度的汇总表。
  • 数据应用层–ADS(ADSàApplication Data Service):存放各项统计指标结果。

1.3 数据仓库与数据库的区别

  1. 数据库是面向事务的设计,数据仓库是面向主题设计的
  2. 数据库一般存储业务数据,数据仓库存储的一般是历史数据
  3. 数据库设计是避免冗余,符合业务应用,但是不符合分析。数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计
  4. 数据库是为捕获数据而设计的,数据仓库是为分析数据而设计

第2章 数据仓库建模概述

2.1 数据仓库建模意义

数据模型就是数据组织和存储的方法,它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后,数据才能得到高性能、低成本、高效率、高质量的使用。

2.2 数据仓库模型–ER模型

ER模型:用实体关系模型来描述企业业务,并用规范化(减少数据冗余,增强数据的一致性)的方式表示出来,在范式理论上符合3NF

  • 实体关系模型:实体关系模型将复杂的数据抽象为两个概念——实体和关系。实体表示一个对象,例如学生、班级,关系是指两个实体之间的关系,例如学生和班级之间的从属关系。
  • 三范式:第一范式1NF:属性不可切割;第二范式2NF:不能存在“部分函数依赖”;第三范式3NF:不能存在传递函数依赖。

这种模型方法的出发点是整合数据,其目的是将整个企业的数据进行组合和合并,并进行规范处理,减少数据冗余性,保证数据的一致性(会产生很多表)。这种模型并不适合直接用于分析统计

2.3 数据仓库模型–维度模型

维度模型:将复杂的业务通过事实维度两个概念进行呈现,事实通常对应业务过程,而维度通常对应业务过程发生时所处的环境。
:业务过程可以概括为一个个不可拆分的行为事件,例如电商交易中的下单,取消订单,付款,退单等,都是业务过程。

下图为一个典型的维度模型,其中位于中心的SalesOrder为事实表,其中保存的是下单这个业务过程的所有记录。位于周围每张表都是维度表,包括Date(日期),Customer(顾客),Product(产品),Location(地区)等,这些维度表就组成了每个订单发生时所处的环境,即何人、何时、在何地下单了何种产品。从图中可以看出,模型相对清晰、简洁。

image-20230518104312602
image-20230518104312602

维度建模以数据分析作为出发点,为数据分析服务,因此它关注的重点是用户如何更快的完成需求分析以及如何实现较好的大规模复杂查询的响应性能

第3章 维度建模理论之事实表

事实表(“细长”:列比较少、行比较多,且行的增速快)作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计。其包含与该业务过程的维度引用(维度表外键)以及该业务过程的度量(通常是可累加的数字类型字段)

3.1 事务型事实表

概述:事务型事实表用来记录各业务过程,它保存的是各业务过程的原子操作事件,即最细粒度(粒度是指事实表中一行数据所表达的业务细节程度)的操作事件,可用于分析与各业务过程相关的各项统计指标

设计流程:选择业务过程–>声明粒度–>确定维度–>确定事实

  • 选择业务过程:挑选需要的业务,一个业务过程对应一张事务型事实表

    可以确定有哪些事务型事实表

  • 声明粒度:精确定义每张事务型事实表的每行数据表示什么

    可以确定每张事务型事实表的每行数据是什么

  • 确定维度:确定与每张事务型事实表相关的维度有哪些

    可以确定每张事务型事实表的维度外键

  • 确定事实:“事实”,指的是每个业务过程的度量值(通常是可累加的数字类型的值,例如:次数、个数、件数、金额等)

    可以确定每张事务型事实表的度量值字段

3.2 周期型事实表

概述:周期快照事实表以具有规律性的、可预见的时间间隔来记录事实,主要用于分析一些存量型(例如商品库存,账户余额)或者状态型(空气温度,行驶速度)指标。

3.3 累计型事实表

概述:累计快照事实表是基于一个业务流程中的多个关键业务过程联合处理而构建的事实表,如交易流程中的下单、支付、发货、确认收货业务过程。

  • 标题: 数据仓库建模理论
  • 作者: 宣胤
  • 创建于: 2023-05-18 09:56:02
  • 更新于: 2023-05-19 00:11:38
  • 链接: http://xuanyin02.github.io/2023/051846990.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论