
数据仓库建模的目的在于通过建模方法更好地、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。以下是关于数据仓库建模的考虑因素:
1. 访问性能:追求快速查询所需数据,减少数据输入/输出操作。
2. 数据成本:降低不必要的数据冗余,实现计算结果数据的复用,从而节省大数据系统中的存储和计算成本。
3. 使用效率:改善用户应用体验,提高数据使用的效率。
4. 数据质量:致力于改善数据统计口径的不一致性,减少数据计算错误的可能性,提供高质量、一致的数据访问平台。
目前常见的数据建模方法包括范式建模、维度建模、Data Vault模型和Anchor模型。
接下来详细介绍四种常见的建模方法及其步骤:
1. 范式建模(E-R模型):将事物抽象为“实体”、“属性”和“关系”来表示数据关联和事物描述。这种对数据的抽象建模通常被称为ER实体关系模型。ER模型是数据库设计的理论基础,几乎所有的OLTP系统设计都采用ER模型建模的方式。但随着企业数据的高增长和复杂化,全ER模型建模越来越不合时宜。
E-R模型的建模步骤(满足3NF)包括:抽象出主体、梳理主体间的关系、梳理主体的属性、画出E-R关系图。
2. 维度建模:以分析决策的需求为出发点构建模型,重点解决如何更快速地满足用户分析需求,同时保证大规模复杂查询的响应性能。维度建模可以面向分析,为提高查询性能可以增加数据冗余,采用反规范化的设计技术。维度建模主要包括事实表和维度表两种类型。事实表用于承载事务数据,维度表一般为描述性属性。
维度建模的步骤包括选择业务过程、声明粒度、确定维度和确定事实。旨在解决数据粒度、维度设计和事实表设计问题。
3. Data Vault模型:在ER模型的基础上衍生而来,旨在有效地基础数据层,使其易于扩展和灵活应对业务变化。该模型包含中心表(Hub)、链接表(Link)和卫星表(Satellite)。其中Hub代表业务主体集合,Link表示Hub之间的关系,Satellite则包含历史的描述性数据。Data Vault模型是对ER模型的进一步规范化,更适合用于构建底层数据仓库。
Data Vault模型的建模流程包括梳理主要实体、定义中心表、定义链接表和卫星表等。
当前主流的建模方法为ER模型和维度模型。ER模型常用于OLTP数据库建模,应用于数据仓库构建时更注重数据整合;维度建模则面向分析场景,能快速、灵活地满足分析需求,并提供大规模数据的快速响应性能。在选择和使用数仓模型时,需要兼顾灵活性、可扩展性、技术可靠性和实现成本。常用的建模工具有Erwin、powerdesigner等。在进行模型设计时需要考虑终端用户的透明性。
