一、数据仓库概述

概念

数据仓库是一种面向商务智能活动的数据管理系统,用于分析和报告来自多个来源的结构化和半结构化数据。

特点:

面向主题,按一定主题域组织。

集成,综合提炼的数据。

反应历史变化,数据相对稳定。

为分析服务。

2. 对比

数据仓库和数据库对比

特性

数据仓库

数据库

定位

数据分析OLAP

事务处理OLTP

操作

查询

增删改查

数据粒度

维度

事件记录

存储方式

列存

行存

表结构

星型、雪花

三范式(

属性不可再分;

满足一,且完全依赖主属性;

满足二,且不存在传递依赖)

数据结构

读优化

读写优化



数据模型

星型:由一张事实表和一组维度表组成,这些维度表以事实表为中心,和事实表直接相连。

雪花型:星型的基础上,维度表可以有其他维度表,并且维度表和和维度表之间连接。较星型性能低。

附:

事实表:分析主题的度量以及与各维度表相关联的外键,通过join与维度表相连。

度量包括:

可加:最为灵活,可以按照与事实表关联的任意维度汇总。

半可加:可以按照某些维度汇总,但不能对所有维度汇总,如:差额。除了时间维度外,它们可以跨所有维度进行加法操作。

不可加事实:这些维度完全不可加,如比率。

事实表可分为:

事务事实表:该表一行对应空间或者时间上某点的度量时间,即流水数据。

周期快照事实表:该表每一行汇总了发生在某一标准周期,如一天、一小时。即按某种维度轻度汇总的数据。

累计快照事实表:该表的行汇总发生在过程开始和结束之间可预测步骤内的度量事件。即记录整个业务过程,如下单时间、支付时间等

无事实的事实表:有些事件没有事实,事实包含多个维度。如 某天学生参加的课程。

开发原则:

业务完整

不冗余

度量拆解

粒度

空值处理

维度表:用户分析数据的窗口,包含事实数据表中事实记录的特性,每个维度表都包含单一的主键列用于与之关联的事实表的外键。

特征:

维度表的范围较宽,如具有多个属性、列。

较事实表行数相对小。

内容固定。

分层概念

分层的意义:解耦,把复杂的问题简单化。

分层的好处:数据结构清晰、减少重复开发、统一数据口径、复杂问题简单化。

通用的分层架构(由下向上):



层级

说明

描述

ADS

数据应用层

面向实际的数据需求,可以直接给业务人员使用。以DWD、DWS为基础,组成各种统计报表。

DWS

数据汇总层

以分析的主题对象作为建模驱动,基于上传的应用和产品的指标需求,构建公共粒度的汇总指标事实表,以宽表手段物化模型。构建命名规范、口径一致的统计指标。

DWD

数据明细层

以业务过程为建模驱动,基于每个具体的业务过程特点,构建最细粒度的明细层事实表,并提供一定的数据质量保证。

ODS

原始数据层

存放未处理的或者经过简单清洗的数据,原则全量保留。



二、数仓建模

流程

业务理解:对业务整体梳理,理清业务间的关系和业务流程。需要对数据模型范围界定,最后对整体目标和阶段划分设定。

领域建模:抽取关键业务概念,对其分组、聚合。抽象同组概念内的业务流程、理清分组概念间的关系。

逻辑建模:对数据层次逻辑化,包括 业务实体化、事件实体化、说明实体化。

物理建模:数据模型物理化,包括基于数仓平台进行技术调整,考虑后续的模型性能和数据管理,以及数据模型脚本开发。

模型迭代:对数据模型脚本的维护和迭代。

过程

选择业务过程:由组织完成的微观活动,包含以下共同特征:

业务过程通常使用行为动词表示,通常表示业务执行的过程。

通常由某个操作型系统支持,如账单系统、购买系统。

建立或获取关键性 能 度量。

通常由输入激活,产生输出度量,即一系列过程产生一系列事实表。

声明粒度:精确定义某个事实表的每一行表示什么。(如何描述事实表中每个行的内容)

确定维度:承担每个度量环境中所有可能的单值描述符。在选择每个维度时,应该列出所有具体的、文本类型的属性用于充实每个维度表。(如何描述来自业务过程度量事件的数据)

确定事实:确定业务中的度量值,如下单次数等。

三、其他概念补充

缓慢变化维

数据随时间变化,比如用户表中的年龄、地址等信息。

拉链表

记录事物从开始到现在的状态的所有变化信息;每次上报的都是历史记录的最终状态。

元数据

包括技术元数据和业务元数据。

技术元数据:表、分区、名称、类型、索引等。

业务元数据:主题域、维度等。

四、参考

《数据仓库工具箱》第三版