数据仓库

思维导图:https://www.processon.com/view/link/5b7ccc10e4b08d3622b898a4

1. 数据仓库的概念





  • 操作型数据库&决策支持数据仓库的区别



2. 数据仓库的体系结构



1、数仓的物理结构


图 数据仓库的物理结构

当前基本数据:最近时期的业务数据,数据量大,用户关心;

当前基本数据——time—→历史基本数据

当前基本数据——提取—→轻度综合数据

【元数据】

元数据:整个数据仓库的结构是由元数据来组织的。元数据不包含任何与业务相关的实际数据信息,但对数据仓库中的各种数据进行详细的描述和说明,所以也成为“数据的数据”。

元数据至少包含以下一些信息:数据结构、用于综合的算法、从业务环节到数据仓库的规划等。

2、数仓的系统结构

数据仓库系统=仓库管理+数据仓库+分析工具


图 数据仓库的系统结构

数仓中的源数据来自多个数据源,一般有四个主要类别:

①生产数据 ②内部数据 ③外部数据 ④存档数据

分析工具有以下两类:

①可视化分析工具(OLAP) ②挖掘工具(DM)

3、数仓的数据模型


图 多维数据模型示意图

多维数据视图:在有层次的维构成的多维空间中,存放着数据度量值。

所谓维的层次,是指该维度所具有的级别,如“日期维”,由高到低的层次为:年-月-日。维的最低层次由具体的业 务数据确定,而上面的层次则由分析的需要确定综合的程度。

  • 常用的多维数据模型:

(1)星形模型


图 星形模型

【概念-星形模型】

大多数数仓都采用星形模型。星形模型由一个事实表及多个维度表组成(类似符号*)。

事实表中存放大量关于业务的事实数据(即度量值),这些数据通常很大,且非规范化程度很高;

维度表是围绕事实表建立的较小的表,维度表中一般存放描述性数据。

事实表有大量的行(记录),而维度表相对来说只有较少的行(记录)。

【星形模型的特点】

①维表和事实表用主、外键进行关联,即维表的主键是事实表的外键;

②星形模型以潜在的存储空间为代价,使用了大量的非规范化来优化速度;

③当业务问题发生变化,原来的维不能满足要求时,就需要增加新的维。由于事实表与维表之间的主、外键关系,这种维的变化带来的数据变化将是非常复杂、非常耗时的;

④星形模型的数据冗余量很大,不适合大数据的情形。

【*Tips】

对于传统事务性数据库设计者而言,数据通常以高度规范化的方式建模,这样做的目的是为了快速地对数据进行CRUD,但结果是产生了很多彼此相互关联的表。而OLAP多维数据集是非规范化的n维结构,即人为地造成数据的冗余,从而减少所需要的表的数量,使得对多维数据集返回查询结果的速度要比包含许多连接事务型数据库快很多。这也是如何将数据从规范化的事务型数据库转移至非规范化数据仓库时要面对的问题。

(2)雪花模型


图 雪花模型

雪花模型是对星形模型的规范化,通过对星形模型的维表进一步层次化,原来的各维表可能被扩展为小的事实表,形成一些局部的“层次”区域。在雪花模型中,能够定义多重“父类”维来描述某些特殊的维表,eg.在时间维上增加了月和季度。

优点:最大限度地减少数据存储量,以及把较小的维表联合在一起来改善查询性能。

缺点:增加了用户必须处理的表的数量,也增加了某些查询的复杂型。但这种方式可以使系统更进一步专业化和实用化,但同时也降低了系统的通用程度。