《大数据之路-阿里巴巴大数据实践》,作者阿里巴巴数据技术及产品部,第八章“大数据领域建模综述”
阿里的这本书之前又翻看过,很多实践是很棒的,也学习应用过一些规范,最近比较闲(失业在家),整理一下。最近搬家,有好多书,哎,有些书看完就处理掉吧,二手卖掉,要不搬家太痛苦了。
这一章是概述,主要介绍了关于建模相关的一些基础知识点,下面就总结下,算是对知识的回顾了。
为什么需要数据建模
记得面试的时候,有被问到过这个问题,也问过别人,考虑这个问题,从几个点来看:什么是数据建模?用了的话,有什么好处?
- 数据建模就是将数据进行有序、有结构的分类组织和存储,主要从业务、数据存取、使用三个角度考虑
通过数据建模,我们可以
- 获得性能的提升,减少IO吞吐
- 降低存储成本和计算成本,减少数据冗余,数据重用性高
- 提高使用效率
- 提高数据质量,统一数据口径,减少错误发生的可能
想写议论文一样,我们还可以通过类比来回答这一问题:
- 数据就像图书馆里的书,图书馆里的书分门别类,查找借阅非常方便,没有经过建模的数据,就像是一堆一堆的书籍,想象一下,你找一本书要多久?
- 数据就像一栋一栋建筑,整个城市的规划是需要设计的,你会把机场建在陆家嘴吗?
数据库和数据仓库
他们俩名字很像,外行人或者不了解的同学一开始会容易搞错,简单来说,数据库是用来存储数据的,而数据仓库也是需要建立的数据库之上的,它更多的是一种解决方案。
提到它俩的时候,兴许还会说说OLAP和OLTP,书中提到的一些点还是很好的。
- OLTP主要是随机读写,通常要满足3NF,需要满足事务
- OLAP主要是批量读写,不关注事务
建模方法
面试或者平时总会提到说怎么建模,用的谁谁的建模理论,说实话,我一直都记不住几位大师的名字,传统的建模方法一个是基于ER模型的,一个是基于维度建模的。书里总结的不错,让我们来学习下。
ER模型
Bill Inmon,数据仓库之父提出的建模方法。需要从全企业的高度设计一套3NF模型,需要了解企业业务和数据;实施周期非常长;对建模人员的要求非常高。
该模型主要是将数据进行整合,并不能直接用户分析决策维度模型
Kimball大师倡导的建模方法。从需求分析角度出发,关注用户如何快速完成需求分析,使用星型模型、雪花模型。
这是目前比较通用的方法,上手也很简单。DataVault 模型 & Anchor模型
这俩模型没怎么实践过,都是偏数据整合的,各有特点。