概述
为了严谨起见,在正式内容之前,先把OLAP多维语义模型是什么说明一下。
先说OLAP(Online Analytical Processing),它是和OLTP相对的概念,关于这两个概念的详细解释网上有很多。严格的来说OLAP与多维数据没有必然的联系,基于关系模型、图模型、时序模型或者其他数据模型的在线分析都可以叫做OLAP,只不过是因为大多数OLAP系统都采用了多维建模的思路,所以OLAP与多维数据结构就联系到了一起。
再说一下语义模型,以MySQL和Hive为例,二者的底层数据结构分别是B+Tree和HDFS,但是它们提供的SQL并没有与B+Tree和HDFS相关的概念,而是基于表和字段的这种关系型结构,所以可以认为MySQL和Hive在语义层提供了关系型的数据模型。
我们这里所说的OLAP多维语义模型指的是,一个OLAP系统无论其底层的存储结构如何(星型结构、雪花结构、宽表、稀疏维与密集维,亦或是其他结构),如果它具有在逻辑层面精确描述纯粹的多维模型的能力(通过SQL、MDX、编程接口,亦或是其他方式),则可以认为这个OLAP系统能够支持多维语义模型。
后续在介绍各种概念的同时会有实操环节,我们将使用Docker运行一个OLAP多维数据库,所以你要准备一个Docker环境。
现在开始正式内容。与OLAP多维语义模型相关的全部概念都列在了下表中,你现在只需要大概看一下即可,如果完全不懂也没关系,后续会有每个概念的详细说明。
概念 | 说明 | |
---|---|---|
维度 | Dimension | 维度就是业务角度,通常用于对数据进行分类和分组,以便更好地进行分析。 |
成员 | Member | 成员是维度中的具体元素,表示该维度下的一个特定数据点。 |
多维数据集 | Cube | 多维数据集通过关联多个维度形成逻辑上的N维立方体结构,它提供对业务数据进行多维度分析的能力。 |
度量 | Measure | 度量是在多维数据集中被分析的量化数值,代表业务过程中的关键指标,如销售额、利润等。 |
集合 | Set | 集合由若干个元组组成,集合通常被用于定义多维查询结果中维度的具体展现信息。 |
元组 | Tuple | 元组由若干个维度成员组成,一个元组是多维数据集中的一个数据点,表示一个数据组合。 |
级别 | Level | 级别是层次结构中的一个特定层,代表成员的不同粒度或详细程度,如时间维度中的年、季度、月等级别。 |
层次结构 | Hierarchy | 维度内部的成员之间具有父子级关系,层次结构就是根据成员之间的父子关系形成的一个树状结构。 |
维度角色 | Dimension Role | 当一个维度被某个Cube关联多次时,这个维度会在这个Cube上扮演 |