1、数据仓库(Data Warehouse)-概述
1、数据仓库-概述
1-1、【inmon书中的定义】数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合
1-2、【kimball中的定义】数据仓库是将源系统数据抽取、转化、清洗,存储到维度模型中的系统,为分析决策提供查询、分析的支持。
2、数据仓库-产生原因
2-1、数仓是一个系统,当数据问题到达一定规模,都需要一个系统来帮助我们更有效率的完成问题,例如OA系统,CRM销售系统都是类似的。
2-2、数仓能帮助我们更有效率的完成整个数据的查询、分析、产出报表、用数据驱动业务等功能。
3、数据仓库-模型
3-1、范式模型
3-1-1、范式模型也叫关系模型,遵循第三范式,构建实体表和表之间的关系,能减少数据的冗余。
3-1-2、范式建模的表一般比较分散,能减少数据冗余,但是关联查询效率不是很高。
3-2、维度模型
3-2-1、维度模型,将表的概念抽象成事实和维度表,面向业务过程,一般是宽表
3-2-2、维度模型的表一般将事实表做成宽表,按照业务过程,易于构造,灵活方便,所以现在互联网公司为了快速响应需求,一般都使用维度建模构建宽表。
4、数据仓库-基本分层:一般分三层ODS、DW、APP,【流向:ods --> dwd --> dws --> dwt --> ads】
4-1、ODS:Operational Data Store,是操作型数据,一般从源系统拉去数据直接导入ods层,为了方便追踪,一般不会做过多处理
4-2、DW是数据仓库层,一般分DWD、DWS、DWM层
4-2-1、DWD[Data Warehouse Detail]:数仓明细层,ods经过清洗,落地这一层,一般是最细粒度、
4-2-2、DWM[Data Warehouse Middle]:数据汇总层,是对DWD层的生产数据进行轻度综合和汇总统计(可以把复杂的清洗,处理包含,如根据PV日志生成的会话数据), 由明细层按照一定的业务需求生成轻度汇总表。
4-2-3、DWS[Data Warehouse Service]:数据集市层/宽表, 由轻度汇总层和明细层数据计算生成。用于提供后续的业务查询,OLAP分析,数据分发等。
4-2-4、DWT[Data Warehouse Total]:将DWS层每日聚合的数据进行累积,不是分区表,是一个累积型全量表。
4-3、ADS[Application Data Service]:数据应用层,根据各种报表及可视化来生成统计数据。通常这些报表及可视化都是基于某些维度的汇总统计。
4-4、APP是应用层,一般直接供用户查看、使用。
1.1、数仓数据流转示意图
数仓数据流转.xmind
1.2、数仓数据流向示意图
2、数据仓库-其它概念
1、CDM、LDM、PDM概念
CDM:概念模型,只是概念
LDM:逻辑模型,具体到表的说明,表之间的逻辑关系
PDM:物理模型,具体的表设计模型
2.1、数据仓库-其它概念-拉链表
1、数据仓库-其它概念-拉链表
1-1、拉链表是针对数据仓库中表的存储方式定义的,就是在一张表中以天为单位,记录每条数据从开始到现在的所有状态变化信息。
1-2、实际操作方法就是增加两个字段start_time和end_time,表示有效开始日期和有效结束日期。
1-3、https://blog.csdn.net/zhaodedong/article/details/54177686
2.2、数据仓库-其它概念-维度
1、数据仓库-其它概念-维度
1-1、退化维度:
1-1-1、指一些常用的维度属性,直接放在事实表上,避免了查询的关联操作
1-2、多值维度:
1-2-1、通常事实表和维度表都是多对一的关系,即一个维度对应多个事实,一个事实对应一个维度,
1-2-2、多值维度指事实和维度是对多对多关系或一对多关系,即一个事实可能对应多个维度。
1-2-3、这种情况一般要尽量避免,可以重新设计看能不能降低事实表粒度,也可以设计桥接表(类似于多对多之间的关系表)。
1-3、缓慢变化维度:维度表中随着时间变化的维度字段
2.3、数据仓库-其它概念-数据仓库架构总线
https://www.cnblogs.com/liqiu/p/7096513.html
3、数据仓库系列文章
https://github.com/dantezhao/data-warehouse