八、数据模型篇——建模综述8.1 OLTP和OLAP解说8.2典型数据仓库建模方法论8.2.1 ER模型8.2.2维模型Kimball8.2.3 Data Vault模型8.2.4 Anchor
数据建模是一种数据组织和存储,强调从业务、数据访问和使用角度存储数据。
数据模型非常重要,好处包括:
表演。 可以快速搜索所需的数据,降低数据的I/O吞吐量成本。 减少不必要的数据冗馀,实现计算复用,降低计算和存储成本效益。 提高用户的数据体验,提高数据使用效率的质量。 改善数据统计口径不一致性为什么要设计数据分层:为了使我们的数据体系更有序,需要一组有效的数据组织和管理方法
3358www.Sina.com//如果要为每个数据层使用http://www.Sina.com/http://www.Sina.com /表的复杂任务,请使用http://www.Sina.com /表http://www.Sina.com/http://www.Sina.com/:规范数据分层,可以开发一些http://ww.com http://www.Sina.com/:通过数据分层复杂问题简单化8.1 OLAP和OLAP描述在线事务处理(OLTP )在线处理流程
的主要数据操作为多个步骤来完成,每一层解决特定的问题。复杂的查询有多个子语句
主要采用满足清晰数据结构存储数据,在事务中为的作用域和职责,
重点是基本的日常事务处理,包括数据的添加、删除、重新评估。
在线分析处理
主要数据操作为方便地定位和理解
事务一致性很少关注数据血缘追踪和快速准确地定位到问题,并清楚它的危害范围上的性能
需要以大量的历史数据为基础,根据时间的不同,对多维度和集合型的信息进行复杂的分析。
8.2典型的数据仓库建模方法论8.2.1 ER模型采用实体关系(Entity Relationship )模型描述企业业务,在范式理论上符合3NF,是站在企业角度面向主题的抽象。
减少重复开发
3NF :
http://www.Sina.com/: http://www.Sina.com /。 是数据库表中每列为通用的中间层数据,能够减少极大的重复计算的基本数据项,且同一列不能有多个值。 是大量的预处理来提升应用系统的用户体验(效率)。 3358www.Sina.com/:要求唯一性,各统一数据口径,统一对外输出的数据口径。随机读写:主键的属性3NF的实体关系模型建模阶段不存在:
解决数据的冗余和一致性高度抽象的模型,描述主要主题与主题之间的关系,细分企业业务总体概况批量读写主题数据项。主要关注数据的整合根据性能和平台特点设计物理属性,以整合和分区表。 8.2 .从二维模型Kimball决策分析的需要出发构建模型。 关注如何快速完成需求分析,同时提高大型复杂查询的响应能力。 代表:星形模型、雪花模型
建模阶段:
选择3358www.Sina.com/(可以是支付、退款等单个业务时间,也可以是由一系列事务组成的业务流程)复杂大数据查询处理,细分程度。 粒度根据包含维组合用ER数据建模的出发点是整合数据,将各个系统中的数据以整个企业角度按照主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但不能直接用于决策分析。维属性的粒度设计维表。第一范式有待衡量的指标原子性,字段不可分
由不可分割组成,
以事实表为核心,维表围绕核心呈星状分布维表只和事实表关联,维表之间没有关联每个维表的主键为单列,且该主键放在事实表中,作为两边连接的外码雪花模式
每个维表可继续向外连接多个子维表
雪花模型相当于将星形模式的大维表拆分成小维表,满足规范化设计,在实际中较少
星座模式
多对多
维度空间内的事实表可能不止一个,一个维表可能被多个事实表用到
○ 好处:能够共享维度 和 设置细节/聚集事实表
○ 共享维度:公司希望用分析销售主题的方法分析劣质产品,不需要重新建模,只需要加入一个新的劣质产品事实表
○ 细节事实表:每条记录表示单一事实,通常设置TID属性,查询灵活但速度慢
○ 聚集事实表:每条记录聚合多条事实,无TID属性,速度快但查询功能受到一定限制
8.2.3 Data Vault模型强调可审计的基础数据层,也就是强调数据的历史性、可追溯性和原子性,不过度追求一致性处理。
基于主题概念进行结构化组织
对Data Vault规范化处理,一个高度可扩展的模型,所有的扩展只是增加不是修改,基本变成k-v结构化模型。
Anchors:类似于Hub,代表业务实体,只有主键
Attributes:类似于Satellite,全部k-v结构化,一个表只有一个Anchors的属性描述
Ties:类似Link,单独用表表示,提升模型关系的扩展能力
Knots:代表多个Anchors中公共的属性提炼,如性别、状态等枚举类型且被公用的属性
可以划分为历史和非历史的,以时间戳加多条记录的方式记录数据变迁
8.3 数据模型实践第一阶段,完全应用驱动,满足报表需求,基于Oracle数据库特性的利用进行数据存储和加工,部分使用维度建模的缓慢变化维方式进行历史数据处理。两层模型:ODS + DSS(decision support system)
第二阶段,将ER模型+维度模型方式应用改变烟囱式的开发模式,四层模型:
ODL(操作数据层),和源系统保持一致BDL(基础数据层),希望引入ER模型,加强数据整合,构建一致的基础数据模型IDL(接口数据层),基于维度模型方法,构建集市层ADL(应用数据层),完成应用的个性化和基于展现需求的数据组装第三阶段,以Kimball的维度建模维核心理念,数据公共层着力解决数据存储和计算的共享问题