今天继续学习《大数据之路》。从今天开始,进入了本书的第2篇-数据模型篇。第1篇数据技术篇比较偏向于底层的技术实现,文章都已经更新完毕,可以点击下方的连接获取。从第2篇开始,着重数据的建模和维度设计等知识,这是数据仓库面试的重点。今天先学习第8章大数据领域建模综述。关注公众号回复 802 获取《大数据之路》pdf。
其他章节的文章请点击这里查看。
1.为什么需要数据建模
数据模型就是数据组织和存储方法,强调从业务、数据存取和使用角度合理存储数据。有了适合业务和基础数据存储环境的模型,会带来如下好处:
性能:好的数据模型查询效率高,减少 IO 吞吐;成本:好的数据模型极大减少不必要的数据冗余,实现计算结果复用,降低存储和计算成本;效率:好的数据模型极大改善用户使用数据的体验,提高数据使用的效率;质量:好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。
2.关系数据库系统和数据仓库
大数据仍然在 SQL 进行数据加工和处理,仍然在用 Table 存储数据,仍然在使用关系理论描述数据之间的关系。只是在大数据领域,基于数据存取的特点在关系数据模型的范式上有了不同的选择。
3.从 OLTP 和 OLAP 系统的区别看模型方法论的选择
OLTP 系统通常面向随机读写,3NF 的实体关系模型存储,在事务处理中解决数据的冗余和一致性问题。OLAP 系统通常面向批量读写,关注数据的整合,一次性的复杂大数据查询和处理中的性能。4.典型的数据仓库建模方法论
4.1 ER 模型
实体关系(Entity Relationship,ER)模型,符和 3NF。数据仓库中的 3NF 与 OLTP 系统中的 3NF 区别在于它是站在企业角度面向主题的抽象,而不是针对具体的业务流程。ER 模型数据仓库的出发点是整合数据,为数据分析决策服务,不能直接用于分析决策。
4.2 维度模型
从分析决策的需求出发构建模型,重点关注用户如何更快完成需求分析,具有较好的大规模复杂查询的响应性能。典型代表是星型模型和雪花模型。设计步骤为:
选择业务过程。可以是单个业务事件(比如支付、退款),也可以是事件的状态(比如余额),还可以是一系列相关业务组成的业务流程;选择粒度。粒度是维度的一个组合。识别维表。基于粒度设计维表,包括维度属性。选择事实。确定分析的指标。
4.3 Data Vault 模型
ER 模型的衍生。分为下面几部分:
Hub:骨架。企业的核心业务实体。Link:韧带。代表 Hub 之间的关系。Satellite:血肉。是 Hub 的详细描述内容。
4.4 Anchor 模型
对 Data Vault 进一步规范化,核心思想是所有的扩展只是添加而不是修改,规范到 6NF,基本变成了 k-v 结构化模型。组成如下:
Anchors:类似上面的 Hub,业务实体,只有主键。Ties:类似上面的 Link,描述 Anchors 之间的关系,提升了整体模型关系的扩展能力。Attributes:类似上面的 Satellite,但全部 k-v 结构化,一个表只有一个 Anchors 的属性描述。Knots:多个 Anchors 之间公用的属性,比如性别、状态。
上述状态又细分为历史和非历史,以时间戳加多条记录的方式记录数据的变迁历史。
欢迎关注公众号,每天更新大数据面试经验和技术。