数据建模方法及步骤

何为建模?

数据几乎总是用于两种目的:操作型记录的保存和分析型决策的制定。简单来说,操作型系统保存数据,分型型系统使用数据。前者一般仅反映数据的最新状态,按单条记录事务性来处理;其优化的核心是更快地处理事务。后者往往是反映数据一段时间的状态变化,按大批量方式处理数据;其核心是高性能、多维度处理数据。通常我们将操作型系统简称为OLTP(On-Line Transaction Processing)— 联机事务处理,将分析型系统简称为OLAP(On-Line Analytical Processing)— 联机分析处理。

针对这两种不同的数据用途,如何组织数据,更好地满足数据使用需求。这里就涉及到数据建模问题。即设计一种数据组织方式(模型),来满足不同场景。在OLTP场景中,常用的是使用实体关系模型(ER)来存储,从而在事务处理中解决数据的冗余和一致性问题。在OLAP场景中,有多种建模方式有:ER模型、星型模型和多维模型。下面分别说明下:

  • ER模型OLAP中的ER模型,与OLTP中的有所区别。其本质差异是站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系的抽象。

  • 星型模型星型模型,是维度模型在关系型数据库上的一种实现。该模型表示每个业务过程包含事实表,事实表存储事件的数值化度量,围绕事实表的多个维度表,维度表包含事件发生时实际存在的文本环境。这种类似于星状的结构通常称为"星型连接"。其重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。在星型模型基础上,在复杂场景下还可以进一步衍生出雪花模型。

  • 多维模型多维模型,是维度模型的另一种实现。当数据被加载到OLAP多维数据库时,对这些数据的存储的索引,采用了为维度数据涉及的格式和技术。性能聚集或预计算汇总表通常由多维数据库引擎建立并管理。由于采用预计算、索引策略和其他优化方法,多维数据库可实现高性能查询。

在这三种方式中,星型模型使用较多,下面也着重对这种方式进行说明。

维度建模

2.1

基本概念

在建模过程中,涉及到很多概念。下面通过一个场景来,来说明它们。例如:常见的电商下单环节,每个用户提交一笔订单(仅限一个物品),就对应于一条订单记录。

【业务过程】:下订单

【粒度】:每笔订单(拆分为单个物品)

【维度】:地域、年龄、渠道等(可供分析的角度)

【事实/度量】:订单金额等(可用于分析的数据)

2.2

建模步骤

  • 收集业务需求与数据实现

在开始维度建模工作之前,需要理解业务需求,以及作为底层源数据的实际情况。通过与业务方沟通交流、查看现有报表等来发现需求,用于理解他们的基于关键性能指标、竞争性商业问题、决策制定过程、支持分析需求的目标。同时,数据实际情况可通过与数据库系统专家交流,了解访问数据可行性等。

  • 选择业务过程

业务过程是组织完成的操作型活动。业务过程时间建立或获取性能度量,并转换为事实表中的事实。多数事实表关注某一业务过程的结果。过程的选择非常重要的,因为过程定义了特定的设计目标以及对粒度、维度、事实的定义。

  • 声明粒度

声明粒度是维度设计的重要步骤。粒度用于确定某一事实表中的行表示什么。在选择维度或事实前必须声明粒度,因为每个候选维度或事实必须与定义的粒度保持一致。在从给定的业务过程获取数据时,原子粒度是最低级别的粒度。强烈建议从关注原子级别粒度数据开始设计,因为原子粒度数据能够承受无法预期的用户查询。

  • 确认维度(描述环境)

维度提供围绕某一业务过程事件所涉及的"谁、什么、何处、何时、为什么、如何"等背景。维度表包含分析应用所需要的用于过滤及分类事实的描述性属性。牢牢掌握事实表的粒度,就能够将所有可能存在的维度区分开来。

  • 确认事实(用于度量)

事实,涉及来自业务过程事件的度量,基本上都是以数据值表示。一个事实表行与按照事实表粒度描述的度量事件之间存在一对一关系,因此事实表对应一个物理可观察的事件。在事实表内,所有事实只允许与声明的粒度保持一致。

  • 部署方式 - 星型模型或多维模型

选择一种维度模型的落地方式。既可以选择星型模型,部署在关系数据库上,通过事实表及通过主外键关联的维度表;也可以选择多维模型,落地于多维数据库中。

2.3

建模规范

以维度建模为理论基础,定义一系列术语来描述建模对象。下图摘自于《阿里巴巴大数据实践之路》。

数据建模方法及步骤

  • 数据域

指面向业务分析,将业务过程或者维度进行抽象的集合。在划分数据域时,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域。

  • 业务过程

指企业的业务活动事件,如下单、支付、退款都是业务过程。请注意,业务过程是一个不可拆分的行为事件,通俗地讲,业务过程就是企业活动中的事件。

  • 时间周期

用来明确数据统计的时间范围或者时间点,如最近30天、自然周、截至当日等。

  • 修饰类型

是对修饰词的一种抽象划分,是从属于某个业务域的。

  • 修饰词

指除了统计维度以外指标的业务场景限定抽象。修饰词隶属于一种修饰类型。

  • 度量/原子指标

原子指标和度量含义相同,基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,具有明确业务含义的名词,如支付金额。

  • 维度

维度是度量的环境,用来反映业务的一类属性,这类属性的集合构成一个维度,也可以称为实体对象。维度属于一个数据域,如地理维度(其中包挤国家、地区、省以及城市等级别的内容)、时间维度(其中包括年、季、月、周、日等级别的内容)。

  • 维度属性

维度属性隶属于一个维度,如地理维度里面的国家名称、国家ID、省份名称等都属于维度属性。

  • 派生指标

派生指标=一个原子指标+多个修饰词(可选)+时间周期。可以理解为对原子指标业务统计范围的圈定。

设计要点

3.1

维度表设计

维度是维度建模的基础和灵魂。在维度建模中,将度量称为"事实",将环境描述为"维度",维度是用于分析事实所需要的多样环境。维度所包含的表示维度的列,称为维度属性。维度属性是查询约束条件、分组和报表标签生成的基本来源,是数据易用性的关键。维度的作用一般是查询约束、分类汇总以及排序等。维度的设计过程就是确定维度属性的过程,如何生成维度属性,以及所生成的维度属性的优劣,决定了维度使用的方便性,成为数据仓库易用性的关键。正如Kimball所说的,数据仓库的能力直接与维度属性的质量和深度成正比。

在整个设计过程中,应当遵循下面一些原则:

  • 维度属性尽量丰富,为数据使用打下基础。

  • 给出详实的、富有意义的文字描述。

  • 沉淀通用维度属性,为建立一致性维度做好铺垫。

  • 严格区分事实与维度,通过使用场景进行区分。

3.2

事实表设计

事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量。在设计过程中,可以选择不同类型的事实表,它们有各自的适用场景。

数据建模方法及步骤

在整个设计过程中,应当遵循下面一些原则:

  • 选择一种适合的事实表类型。

  • 事实尽可能完整,包含整个业务过程的全部事实。

  • 确保每一个事实度量都是一致性,反复计算都会得到相同的结果。尽量记录一些“原子”事实,而不是加工后的结果。

  • 可适当做些”维度退化属性”,提高事实表的查询性能。

  • 为提高聚合性能,可适度做些上卷汇聚事实表。

  • 13
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IBM数据仓库建模方法论(IBM Data Warehouse Modeling Methodology)是IBM为构建高质量的数据仓库而制定的一套建模方法与指导原则。其目标是帮助组织实现数据驱动决策和分析,从而提高业务效率和竞争力。 该方法论主要包括以下几个方面: 1. 需求分析:在开始建模之前,首先要深入了解业务需求和数据源。通过与利益相关者合作,明确数据需求、目标与范围,以及数据的重要性和可用性。 2. 数据模型设计:根据需求分析结果,设计合适的数据模型来存储和组织数据。这包括确定实体、属性、关系和约束等概念,并选择合适的建模工具和技术来解决特定问题。 3. 数据抽取与装载:将源系统中的数据抽取到数据仓库中。这涉及到数据清洗、转换和加载等步骤,以确保数据的准确性和一致性。 4. 数据仓库更新:持续监控和更新数据仓库中的数据,包括定期的数据抽取和转换过程,以保持数据的实时性和准确性。 5. 数据仓库查询与分析:提供灵活的查询和分析功能,以支持决策和业务需求。这包括使用各种BI工具和技术来提取、分析和可视化数据。 6. 数据质量管理:确保数据仓库中的数据质量高且可信。通过建立数据验证和监控机制,及时发现和纠正数据质量问题。 7. 数据安全与隐私保护:采取必要的安全措施,保护数据仓库中的数据不受未经授权的访问和泄漏。 通过遵循IBM数据仓库建模方法论,组织可以更好地管理和利用数据,提高数据仓库的效率和价值。同时,该方法论还提供了一套通用的指导原则和最佳实践,适用于各种规模和复杂度的数据仓库项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值