大数据领域建模综述
性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据I/O吞吐。
成本:良好的数据模型能极大的减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本。
效率:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。
《数据库系统概念》
OLTP系统通常面向的主要数据操作是随机读写,主要采用满足3NF的实体关系模型存储数据,从而在事务处理中解决数据的冗余和一致性问题;而OLAP系统面向的主要数据操作是批量读写,事务处理中的一致性不是OLAP所关注的,其主要关注数据的整合,以及在一次性的复杂大数据查询和处理中的性能,因此它需要采用一些不同的数据建模方法。
1.ER模型
高层模型:描述主要的主题以及主题间的关系,用于描述企业的业务总体情况。
中层模型:在高层模型的基础上,细化主题的数据项。
物理模型(底层模型):在中层模型的基础上,考虑物理存储,同时基于性能和平台的特点进行物理属性的设计,也可能做一些表的合并、区分的设计等。
2.维度模型
3.DATA VAULT模型
hub:是企业的核心业务主体,由实体key,数据仓库序列代理键,装载时间,数据来源组成。
Link:代表hub之间的关系,这里与ER模型最大的区别是将关系作为一个独立的单元抽象,可以提升模型的扩展性。
satellite:是hub的详细描述内容,一个内容hub可以有多个satellite。
4.Anchor模型
Anchors:类似于Data Vault的HUB,代表业务实体,且只有主键。
Attributes:功能类似于Data Vault的satellite,但是它更加规范化,将其全部K-V结构化,一个表只有一个Anchors的属性描述。
Ties:就是Anchors之间的关系,单独用表来描述,类似于Data Vault的Link,可以提升整体模型关系的扩展能力。
Knots:代表那些可能会在多个Anchors中公用的属性的提炼。
四层模型架构:ODL(操作数据层)+BDL(基础数据层)+IDL(接口数据层)+ADL(应用数据层)
ODL和源系统保持一致;BDL希望引入ER模型,加强数据的整合,构建一致的基础数据模型;IDL基于维度模型方法构建集市层;ADL完成应用的个性化和基于展现需求的数据组装。