建模是什么意思(3种建模方式中以星型模型案例说明对建模的理解)

  • A+
所属分类:网络技术

一、什么是建模

数据几乎总是用于两个目的:操作记录的保存和分析决策的制定。简单来说,操作系统保存数据,分类系统使用数据。前者一般只反映数据的最新状态,按单个记录事务处理;其优化的核心是更快地处理事务。后者往往反映数据一段时间的状态变化,按大批量处理数据;其核心是高性能、多维处理数据。通常,我们将操作系统简称为OLTP-在线事务处理,简称OLAP-在线分析处理。

建模是什么意思(3种建模方式中以星型模型案例说明对建模的理解)

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

ER模型OLAP中的ER模型不同于OLTP中的ER模型。其本质区别在于从企业的角度抽象主题,而不是针对特定业务流程的实体对象关系。

星模型星模型是关系数据库中维度模型的实现。该模型表示,每个业务流程都包括事实表、事实表存储事件的数值测量,包括事件发生时的实际文本环境。这种类似于星形的结构通常被称为星形连接。它关注用户如何更快地完成需求分析,并具有良好的大规模复杂查询响应性能。在星形模型的基础上,雪花模型可以在复杂的场景中进一步衍生出来。

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

建模是什么意思(3种建模方式中以星型模型案例说明对建模的理解)

在这三种方法中,星型模型被广泛使用,下面也重点介绍了这种方法。

二、维度建模。

2.1基本概念。

在建模过程中,涉及到许多概念。这里有一个场景来解释它们。例如,在常见的电子商务订单链接中,每个用户提交订单(仅限于一个项目),这与订单记录相对应。

【业务流程】:下订单。

【粒度】:每个订单(分为单个项目)

【维度】:区域、年龄、渠道等(分析角度)。

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

2.2建模步骤。

实现业务需求和数据收集。

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

选择业务流程。

业务流程是组织的操作活动。建立或获得业务流程的性能测量,并将其转换为事实表中的事实。大多数事实表都关注某个业务流程的结果。过程的选择非常重要,因为过程定义了特定的设计目标和粒度、维度和事实。

声明粒度

声明粒度是维度设计的重要步骤。粒度用于确定事实表中的行表示。在选择维度或事实之前,必须声明粒度,因为每个候选维度或事实必须与定义粒度一致。当从给定的业务流程中获取数据时,原子粒度是最低粒度。强烈建议从关注原子粒度数据开始,因为原子粒度数据可以承受意想不到的用户查询。

确认维度(描述环境)

维度提供了谁、什么、何时、为什么、如何等背景。维度表包含了分析应用程序所需的过滤和分类事实的描述性属性。牢牢掌握事实表的粒度,可以区分所有可能的维度。

确认事实(用于测量)

事实上,涉及业务流程事件的测量基本上是基于数据值。事实表与根据事实表粒度描述的测量事件之间存在一对一的关系,因此事实表对应于物理可观察事件。在事实表中,所有事实只允许与声明的粒度一致。

部署-星模型或多维模型。

选择维度模型的着陆方式。您可以选择星形模型,部署在关系数据库上,通过事实表和主外关联维度表;您也可以在多维数据库中选择多维模型。

2.3建模规范。

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

建模是什么意思(3种建模方式中以星型模型案例说明对建模的理解)

数据域

是指业务分析、业务流程或维度的抽象集合。在划分数据域时,它不仅可以满足当前的所有业务需求,而且可以在进入新业务时无影响地包含在现有的数据域中,并扩展新的数据域。

业务过程

指企业的业务活动,如下单、支付、退款等。请注意,业务流程是一个不可分割的行为事件。一般来说,业务流程是企业活动中的事件。

时间周期

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

修饰类型

是修饰词的抽象划分,属于某一业务领域。

修饰词

指除统计维度外,指标的业务场景有限抽象。修饰词属于修饰类型。

测量/原子指标。

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

维度

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

维度属性

维度属性属于一个维度,如地理维度中的国名、国家ID、省名等。

派生指标

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

建模是什么意思(3种建模方式中以星型模型案例说明对建模的理解)

三、设计要点。

3.1维度表设计。

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

在整个设计过程中,应遵循以下原则:

尽可能丰富维度属性,为数据的使用打下基础。

给出详细而有意义的文字描述。

沉淀一般维度属性,为建立一致性维度铺平道路。

通过使用场景,严格区分事实和维度。

3.2事实表设计。

事实表作为数据仓库维度建模的核心,紧密围绕业务流程进行设计,通过获取描述业务流程的测量来表达业务流程,包括参考维度和与业务流程相关的测量。在设计过程中,您可以选择不同类型的事实表,它们有自己的适用场景。

建模是什么意思(3种建模方式中以星型模型案例说明对建模的理解)

在整个设计过程中,应遵循以下原则:

选择合适的事实表类型。

事实尽可能完整,包括整个业务流程的所有事实。

确保每个事实都是一致的,反复计算也会得到同样的结果。尽量记录一些原子事实,而不是处理后的结果。

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

为了提高聚合性能,可以适度制作一些上卷聚合事实表。

  • 我的微信公众号
  • 扫一扫关注
  • weinxin
  • 我的新浪微博号
  • 扫一扫关注
  • weinxin
小辉博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: