一、数据仓库概念
1.1 名词解释
DSS(decision-support system):决策支持系统
ODS(operational data store):操作数据源(临时存储层)
DW(data warehourse):数据仓库
DM(data market):数据集市
DWS(data warehourse service):服务数据层
DWD(data warehourse detail):细节数据层
DWB(data warehourse base):基础数据层
OLAP(on-line analysis processing):联机分析处理;面向分析的数据库(Hive)
OLTP(on-line transaction processing):联机事务处理;面向业务的数据库(MySQL)
fact:事实表
dimension:维度表
1.2 数据仓库
1.2.1 简介
-
数据仓库是面向主题的、集成的、相对稳定的、反应历史变化的数据集合,用于支持管理决策。
面向主题:在较高层次上将企业的信息统计的数据综合归并,进行分析利用的抽象的概念,每个主题基本对应一个相应的分析领域(BI);
集成:企业级数据,同时数据要保持一致性、完整性、有效性、精确性;
稳定:从某个时间段看是保持不变的,没有更新操作,删除操作,以查询分析为主;
变化:反应历史变化。
-
是为了企业所有级别的决策制定过程,提供所有类型数据支持的战略集合,是出于分析性报告和决策支持目的而创建。
-
为需要业务智能的企业,提供指导业务流程改进,监视时间、成本、质量以及控制。
1.2.2 数据仓库与数据库对比
功能 | 数据仓库 | 数据库 |
---|---|---|
数据范围 | 存储历史的、完整的、反应历史变化的(只能添加和查询,不建议修改,区块链) | 当前状态的数据 |
数据变化 | 可添加,无删除,无变更,反应变化的 | 支持频繁的增、删、改、查操作 |
应用场景 | 面向分析,支持战略决策 | 面向业务交易流程 |
设计理论 | 违范式,适应冗余 | 遵照范围(第一、二、三范式)、避免冗余 |
处理量 | 不频繁,大批量,高吞吐,有延迟(时间长) | 频繁,高批次,高并发,低延迟 |
1.2.3 数据仓库特点(原则)
-
数据仓库的数据是面向主题的;
-
数据仓库的数据是集成的;
-
数据仓库的数据是不可更新的;
-
数据仓库的数据是随时间不断变化的;
随时间变化不断增加新的数据内容;
随时间变化不断删去旧的数据内容;
包含有大量的综合数据(很多跟时间有关)
-
包含历史的;面向决策支持的;面向全企业的;最精细的数据存储;数据快照式的数据获取。
1.2.4 数据仓库的发展历程(大致经历三个过程)
简单报表阶段
数据集市阶段
数据仓库阶段
二、数据仓库建模理论
ER(Entity Relation)实体模型
维度模型
Data Vault模型
Anchor模型
2.1 数据仓库建模的目标
- 访问性能:能够快速查询所需的数据,减少数据IO;
- 数据成本:减少不必要的数据冗余,实现计算结果数据利用,降低大数据系统中的存储成本和计算成本;
- 使用效率:改善用户应用体验,提高使用数据的效率;
- 数据质量:改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量,一致的数据访问平台;
- 所以:大数据的数据仓库建模需要通过建模的方法更好的组织,存储数据,以便在性能、成本、效率和数据质量之间找到最佳的平衡点。
2.2 ER模型
ER模型建模标准:尽量的避免数据冗余
-
关系数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性。
-
目前业界范式有:
- 第一范式(1NF):列都应该是原子性的,即数据表的每一列都是不可侵害(不可拆分)的原子数据项;
- 第二范式(2NF):在1NF的基础上,实体的属性完全依赖于主键,不能存在仅依赖于主键字一部分的属性(复合主键);
- 第三范式(3NF):在2NF的基础上,任何非主属性不依赖于其他非主属性(除了主键以外,列与列之间不能有依赖关系);
- 巴斯-科德范式(BCNF)
- 第四范式(4NF)
- 第五范式(5NF)
-
E(entity)实体:通常为参与到过程中的主题,客观存在的;
R(relationship)关系:ER图
属性:对主体的描述
实体用举行表示;关系用菱形表示;属性用椭圆表示
2.3 维度模型
对数据集市的维度建模,将数据仓库中的表分为事实表和维度表两种。
维度:顾名思义,看待事务的角度,比如从颜色,尺寸的角度来比较手机。
维度表一般为单一主键。在ER模型中,实体为客观存在的事物,会带有自己的描述性属性(为文本性),描述性中描述为维度表。
2.3.1 星型模型(牺牲空间换取时间)
星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余。
事实表(操作事件):用户的登录和注册
2.3.2 雪花模型(牺牲时间换取空间)
优点:通过最大限度地减少数据存储量以及联合较小的维度表来改善查询性能,去除了数据冗余。
星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花模型要高。
正规化也是一种比较复杂的过程,相应的数据库结构设计,数据的ETL,以及后期的维度都要复杂一些;因此,在冗余可以的前提下,实际运用中星型模型使用更高,也更有效率。
2.3.3 星型模型和雪花模型对比
-
数据优化
星型:反规范化数据。
雪花:规范化数据,也就是说数据在数据库内部是组织好的,以便消除冗余,因此它能够有效地减少数据量。
-
业务模式
星型:所有必要的维度表在事实表中都只拥有外键。
雪花:数据模型的业务层级是由一个不同维度表主键-外键的关系来代表的。
-
性能
雪花模型在维度表、事实表之间的连接很多,因此性能方面会比较低。
-
ETL
星型:加载维度表不需要添加附属模型,因此ETL相对简单,可以实现高度并行化。
雪花:加载数据集市,因此ETL操作更加复杂,由于附属型的限制,不能并行化。
2.4 Data Vault模型
在ER模型的基础上衍生而生的,是一种中心辐射式模型。
包含三种结构:
- 中心表-hub:唯一业务键的列表,唯一标识企业实际业务,企业的业务主体集合;
- 连接表-link:表示中心表之间的关系,通过链接表串联整个企业的业务关联关系;
- 卫星表-satallite:历史的描述性数据,数据仓库中数据的真正载体。
2.5 Anchor模型
对Data Vault模型做了更近一步的规范处理。
核心思想是所有的扩展只添加不修改,模型范式达到了6NF。
Map模型。