1、什么是数据仓库?
数据仓库是一种信息系统的数据存储理论,此理论强调利用某些特殊数据存储方式,让所包含的数据,特别有利于分析处理,以产生有价值的信息并依此作决策。
利用数据仓库方式所存放的数据,具有一但存入,便不随时间而更动的特性,同时存入的数据必定包含时间属性,通常一个数据仓库皆会含有大量的历史性数据,并利用特定分析方式,自其中发掘出特定信息。
2、数据建模方式
- 维度模型
维度模型是数据仓库领域大师Ralph Kimball 所倡导,他的《数据仓库工具箱》,是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。
- 雪花模型
3、概念模型、物理模型、逻辑模型

3.1、概念模型
概念模型就是在了解了用户的需求 , 用户的业务领域工作情况以后 , 经过分析和总结 , 提炼出来的用以描述用户业务需求的一些概念的东西 ; 如销售业务中的 客户 和 定单 , 还有就是 商品 , 业务员 , 用 USE CASE 来描述就是 : 业务员 与 客户 就购买 商品 之事签定下 定单 , 概念模型使用 E-R 图表示 , E-R 图主要是由实体 , 属性和联系三个要素构成的 , 该阶段需完成 :
- 该系统的商业目的是什么 , 要解决何种业务场景
- 该业务场景中 , 有哪些人或组织参与 , 角色分别是什么
- 该业务场景中 , 有哪些物件参与 ,
- 此外需要具备相关行业经验 , 如核心业务流程 , 组织架构 , 行业术语
- 5w1h , who , what , when , where , why, how
概念模型的作用:
- 分析如何满足系统功能型需求
- 指导系统设计
3.2、逻辑模型
逻辑模型是将概念模型转化为具体的数据模型的过程 , 即按照概念结构设计阶段建立的基本 E-R 图 , 按选定的管理系统软件支持的数据模型 (层次/网状/关系/面向对象) , 转换成相应的逻辑模型 , 这种转换要符合关系数据模型的原则 ;
还以销售业务为例 : 客户 信息基本上要包括 : 单位名称 , 联系人 , 联系电话 , 地址等属性
商品 信息基本上要包括 : 名称 , 类型 , 规格 , 单价等属性
定单 信息基本上要包括 : 日期和时间属性 ; 并且 定单 要与 客户 , 业务员 和商品 明细关联 , 该阶段需完成 :
- 分多少个主题 , 每个主题包含的实体
- 每个实体的属性都有什么
- 各个实体之间的关系是什么
- 各个实体间是否有关系约束
3.3、物理模型
物理模型就是针对上述逻辑模型所说的内容 , 在具体的物理介质上实现出来 , 系统需要建立几个数据表 : 业务员信息表 , 客户信息表 , 商品信息表 , 定单表 ; 系统要包括几个功能 : 业务员信息维护 , 客户信息维护 , 商品信息维护 , 建立销售定单 ; 表 , 视图 , 字段 , 数据类型 , 长度 , 主键 , 外键 , 索引 , 约束 , 是否可为空 , 默认值 , 该阶段需完成 :
- 类型与长度的定义
- 字段的其他详细定义 , 非空 , 默认值
- 确定详细的定义 , 枚举类型字段 , 各枚举值具体含义
- 约束的定义 , 主键 , 外键
4、典型的数仓仓库建模方法论
4.1 ER模型
其建模步骤分为三个 阶段。
- 高层模型:一个 高度抽象的模型,描述主要的主题以 及主题间的关系, 用于描述企业的业务 总体概况。
- 中层模型:在高层 模型的基础上, 细化主题的数据项 。
- 物理模型(也叫底 层模型):在中层 模型的基础上, 考虑物理存储, 同时基于性能和平 台特点进行物理属 性的设计, 也可能做一些表的合并、分区的 设计等。
4.2 维度模型
其设计分为以下几个步骤:
- 选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;也可以是某个事件的状态,比如当前的账户余额等;还可以是一系列相关业务事件组成的业务流程,具体需要看我们分析的是某些事件发生情 况,还是当前状态,或是事件流转效率。
- 选择粒度。在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。
- 识别维表。选择好粒度之后,就需要基于此粒度设计维表,包括维度属性, 用于分析时进行分组和筛选。
- 选择事实。确定分析需要衡量的指标
4.3 DataValue模型
Data Vault 模型由 以下几部分组成。
Hub :是企业的核心业务实体, 由 实体 key 、数据仓库序列代理 键、装载时间、数据来源组成。
Link :代表 Hub 之间的 关系。 这里与 ER 模型最大的区别是将关 系作为一个独立的单元抽象, 可以提升模型的扩展性。 它可以直 接描述 1 : 1 、 l :n 和 n:n 的关系, 而不需要做任何变更。 它由 Hub 的代理键、装载时间、数据来源组成。
Satellite :是 Hub 的详细描述内容, 一个 Hub 可以有多个 Satellite 。 它由 Hub 的代理键、装载时间、来源类型、详细的 Hub 描述信 息组成。

阿里巴巴集团大数据建设方法论的核心:从业务架构设计到模型设计,从数据研发到数据服务,做到数据可管理、可追溯、可规避重新建建设

5、规范定义
规范定 义指以 维度建 模作为 理论基 础 , 构建总 线矩阵 , 划分和 定义 数据域 、业务 过程、 维度、 度量 / 原子指 标、修 饰类型 、修饰 词、时 间 周期、派 生指标。

名词数据解释

5.1、业界常用的模型实施过程
5.1.1、Kimball模型实施过程

- 高层模型
高层模型设计阶段的直接产出目标是创建高层维度模型图,它是对业务过程中的维表和事实表的图形描述。确定维表创建初始属性列表,为每个事实表创建提议度量。
- 详细模型
详细的维度建模过程是为高层模型填补缺失的信息,解决设计问题,并不断测试模型是否满足业务需求,确保模型的完备性。确定每个维表的属性和每个事实表的度量,并确定信息来源的位置、定义,确定属性和度量如何填入模型的初步业务规则。
- 模型审查、再设计和验证
本阶段主要召集相关人员进行模型的审查和验证,根据审查结果对详细维度进行再设计。
- 提交ETL设计和开发
最后,完成模型详细设计文档,提交ETL开发人员,进入ETL设计和开发阶段,由ETL人员完成物理模型的设计和开发。
5.1.2、Inmon模型实施过程
Inmon将模型划分为三个层次,分别是ERD(Entity Relationship Diagram,实体关系图)层、DIS(Data Item Set,数据项集)层和物理层(Physical Model,物理模型)
6、关于维度建模的几点思考
- 为了减少和维度表的关联,我们采用了部分维度信息合并到事实表中,减小和事实表和维度表的关联(退化维度)
-
缓慢渐变维的情况怎么处理?
在Kimball的理论中,关于三种处理缓慢变化维的方式:
- 重写维度值。采用此种方式,不保留历史数据,始终取最新数据。
- 插入新的维度行。采用此种方式,保留历史数据,维度值变化前的事实和过去的维度值关联,维度值变化后的事实和当前的纬度值关联
- 添加维度列。采用第二种处理方式不能将变化前后记录的事实归一为变化前的维度或者归一为变化后的维度。
增量构建与全量构建问题?
血缘关系
统一业务指标经常不同业务方有着不同的定义,这会导致各个部门之间的统一指标可能存在误差,应该统一统一指标的计算逻辑
区分过程指标与结果性指标