第8章 大数据领域建模综述
1.为什么需要数据建模
为了更好的将数据进行有序、有结构地分类组织和存储。数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。
数据建模的好处:
性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的 110 吞吐。
成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本。
效率:良好的数据模型能极大地改善用户使用数据的体验,提高使用数据的效率。
质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。
2.关系数据库系统和数据仓库
E . F .Codd是关系数据库的鼻祖,它首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究。
两者的关系:大量的数据仓库系统依托强大的关系数据库能力存储和处理数据,其采用的数据模型发放也是基于关系数据库理论的。
3.从OLTP和OLAP系统的区别看模型方法论的选择
On-Line Transaction Processing联机事务处理过程(OLTP),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。
On-Line Analytical Processing联机分析处理过程(OLAP)。OLAP对业务数据执行多维分析,并提供复杂计算,趋势分析和复杂数据建模的能力。它主要用于支持企业决策管理分析,是许多商务智能(BI)应用程序背后的技术。OLAP使最终用户可以对多个维度的数据进行即席分析,从而获取他们所需知识,以便更好地制定决策。OLAP技术已被定义为实现“快速访问共享的多维信息”的能力。
OLTP 系统通常面向的主要数据操作是随机读写,主要采用满足3NF 实体关系模型存储数据,从而在事务处理中解决数据的冗余和一致性问题。
OLAP 系统面向的主要数据操作是批量读写,事务处理一致性不是 OLAP 关注的,其主要关注数据的整合,以及在的复杂大数据查询和处理中的性能,因此它需要采用一些不同的数据模方法。
4. 典型的数据仓库建模方法论
- ER模型
数据仓库之父 Bill lnmon 提出的建模方法是从全企业的高度设计3NF 模型,用实体关系( Entity Relationship, ER )模型描述企业业务,在范式理论上符合 3NF 。
特点:
需要全面了解企业业务和数据
实施周期非常长。
对建模人员的能力要求非常高
建模步骤:
高层模型:一个高度抽象的模型,描述主要的主题以及主题间的关系,用于描述企业的业务总体概况。
中层模型:在高层模型的基础上,细化主题的数据项。
物理模型(也叫底层模型):在中层模型的基础上,考虑物理存储,同时基于性能和平台特点进行物理属性的设计,也可能做一些表的合并、分区的设计等。
- 维度模型
维度模型是数据仓库领域的 Ralph Kimball 大师所倡导的,他的 The Data rehouse Tolkit-The Complete Guide to Dimensional Modeling数据仓库工程领域最流行的数据仓库建模的经典。
建模步骤
选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;也可以是某个事件的状态,比如当前的账户余额等;还可以是一系列相关业务事件组成的业务流程,具体需要看我们分析的是某些事件发生情况,还是当前状态,或是事件流转效率。
选择粒度。在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。
识别维表。选择好粒度之后,就需要基于此粒度设计维表,包括维度属性,用于分析时进行分组和筛选。·选择事实。确定分析需要衡量的指
- Data Vault模型
Data Vault Dan Linstedt 发起创建的一种模型,它是ER模型的衍生,其设计的出发点也是为了实现数据的整合,但不能直接用于数据分析决策。
组成:
Hub :是企业的核心业务实体,由 实体 key 、数据仓库序列代理键、装载时间、数据来源组成。
Link :代表 Hub 之间的关系。这里与 模型最大的区别是将关系作为一个独立的单元抽象,可以提升模型的扩展性。它可以直接描述 : :n n:n 的关系,而不需要做任何变更。它由 Hub的代理键、装载时间、数据来源组成。
Satellite :是 Hub 的详细描述内容, 一个 ub 可以有多个 Satellite它由 Hub 的代理键、装载时间、来源类型、详细的 Hub 描述信息组成。
模型实例:
- Anchor模型
Anchor Data Vault 模型做了进一步规范化处理, Lars. Ri:innback 的初衷是设计 个高度可扩展的模型,其核心思想是所有的扩展只是添加而不是修改,因此将模型规范到 6NF ,基本变成了 k-v 结构化模型。
组成
Anchors :类似于 Data Vault Hub ,代表业务实体,且只有主键。
Attributes :功能类似于 Data Vault Satellite ,但是它更加规范化,将其全部 k-v 结构化, 个表只有 Anchors 的属性描述。
Ties :就是 Anchors 之间的关系,单独用表来描述,类似于 DataVault Link ,可以提升整体模型关系的扩展能力。
Knots :代表那些可能会在 Anchors 中公用的属性的提炼,比如性别、状态等这种枚举类型且被公用的属性
模型图: