数据仓库建模

1、前言

从各个业务线的数据到运营决策的报表,数据在流转过程中,如何安全、高效、准确的流转,这是数据仓库需要解决的问题。

关于建模的方式主要有两种流派,分别有两本书

1、inmon的关系建模,《数据仓库第四版》

2、kimball的维度建模,《数据仓库工具箱》

因为维度建模更适用与现在互联网公司的快速迭代、敏捷开发,所以,我们以《数据仓库工具箱》的维度建模为主要学习参考

2、维度模型基础

数据仓库的最终目的:

  • DW/BI系统要能方便的存取信息
  • DW/BI系统要以一致的形式展示信息
  • DW/BI系统要适应变化
  • DW/BI系统要能及时的展示信息
  • DW/BI系统要能保证信息安全
总结下来就是:使用方便、一致性、可扩展性、及时性、安全性、准确性、业务适用性

维度建模按表可分为事实表维度表

事实表

事实表中的每行对应一个度量事件,每行中的数据是一个特定级别的细节数据,称为粒度,粒度可划分为三类:事务、周期性快照、累积快照

事实表的事实数值可分为三种:

  • 可加性

在维度建模中,对于大数据量的处理,一般累加起来是最简单也是比较直观的统计,例如销售额、成本等

  • 半可加

不能按时间维度汇总,例如账户结余

  • 不可加

例如单价、不可以相加统计

维度表

维度表包含与业务过程度量事件有关的文本环境,用于描述谁、什么、哪里、何时、如何、为什么等有关事件

与事实表比较,维度表一般包含较少的行,但是可能列数较多

区别

事实表 维度表
一般有多个外键 单一主键,用来和维度关联
一般多个值,可计算 一般有限个枚举值,通常用来过滤、分组

区别并不绝对,例如物品的单价,有时可能认为是商品的维度属性,但是有些物品的单价可能波动较大,从这一点看可以看作是事实的属性,所以具体的分类需要根据具体的需求来建立恰当的模型

3、维度模型和关系模型

维度模型

如下图,将数据仓库分为四部分,操作性源数据、etl系统、展现区、bi应用

image

操作性源数据指业务线上数据或其他产生的原始数据

etl这一步包括抽取数据,分割转换事实和维度字段,载入展示区的维度模型

展示区一般按星型模型或OLAP多维数据库存储,供bi应用查询调用,一般最好使用原子数据,包含最细粒度,满足无法预料的随意查询

维度建模的基础,也就是使用一致性维度,这个是维度建模把整个数据仓库串起来的基础

关系模型

在关系模型的数据仓库中etl最后载入的是满足三范式的数据库,这种规范、原子的数据的仓库被称为EDW(企业数据仓库)

image

如上图,关系模型借助规范化的EDW来满足用户分析和报表的需求,工程师更多的是从不同源获取数据,按三范式载入EDW

不管关系模型还是维度模型,都强调企业所有数据的同步、集成,这也是仓库的含义,而不是单一的库,不同的是关系模型强调用规范化的EDW(企业数据仓库)来承担这一任务,而维度模型强调适用一致性维度来实现整个企业数据的互通

混合模型

如下图,虽然也有EDW,但是更多的是作为维度模型的数据来源部分,展示区依然是采用更加灵活的维度建模方式供用户查询分析

image

总结

关系模型更强调满足三范式的EDW来实现查询分析需求,但是这种方式不够灵活,维度模型分事实数据和维度数据,能更方便的新增减少维度属性,更强调使用一致性维度来整合串联所有数据

参考资料

数据仓库工具箱第一章

你可能感兴趣的:(数据仓库建模)