覆盖主要内容
版本: 6.1.0

相关术语及说明

OLAP(On-line Analytical Processing,联机分析处理)技术是为了数据仓库与多维数据分析而设计的一种技术。它允许用户以快速、高效和交互式的方式对数据进行复杂的查询和分析。

数据库

数据库是相关联的数据的集合;用综合的方法组织数据,保证尽可能高的访问效率;具有较高的数据独立性;具有安全控制机制,能够保证数据的安全、可靠;允许并发的使用,能有效、及时的处理数据,能保证数据的一致性、完整性。

多维分析元素

OLAP 基于多维数据模型,支持数据的多维展现,如星型模型和雪花模型,使用户能够从多个维度进行数据分析。 多维模型主要包含这几个概念:数据立方(Cube)、维度(Dimension)、层次(Hierarchy)、级别(Level)、成员(Member)以及度量(Measure)。

数据立方(Cube)

数据立方也可称为多维数据集,代表用三维或更多为描述的一个对象,每个维彼此垂直。数据的度量值发生在维的交叉点上,下图是一个立方体的实例,它有三个维度:时间,产品,工厂。度量值是维与维的交点产生的小立方体单元格,它描述了产品的生产数量。

image.png

一个多维数据集(Cube)是由很多数据维(Dimension,简称【维】)组成的,每一个维都表示某一类数据。维里的数据都限制在某一问题所界定的领域之内。一个数据维可以包含一个或多个层次(Hierarchy),层次是多层结构中某一级别与下一级别之间的【父-子】关系,位于层次顶部的是【根级(Root Level)】,位于层次底部的是一个或多个【叶子(leaf)】。层次中的任何一级都可以看成是数据维里的一类数据。层次里某一级别的一个成员(Member),也可称为级别值(Level Value),包含了由一个级别所表示的数据集合。层次的顶部(根级)容纳了粗略划分的数据集合,而在层次的底部(叶子)则包含了精细划分的数据集合。

维度(Dimension)

维度表示数据分类的角度或方面。城市是一个维度,月份是一个维度。常用的是 3 维立体思维。 3 维可以构成一个立方体。 Slice 是一个立方体的切片。例如一月的所有城市的数据,构成一个面。 Dice 是一个立方体的切块。例如一月份的北京的数据,构成一个小立方体。也可以把维度理解成组的概念,把这些方面分组,把数值类型做统计汇总。常用来做维度的数据类型包括:

数据类型/字段类型说明
String字符串
Char单个字符
Boolean布尔
Date Hierarchy日期的所有层次
Other其他非数字和非日期的类型

同时,从维度的意义上说,维度可以分为【时间维度】和【标准维度】

共享维度

共享维度是指可以用在同一个数据库的不同多维数据集上的维度,与它对应的是【专用维度】。维度按结构可分为5种形式,即【星型架构:单个维度表】、【雪花架构:多个相关维度表】、【父子维度:单个维度表中相关的两列】、【虚拟维度:另一个维度的成员属性】、【挖掘模型:OLAP 挖掘模型的可预测列】。它们代表数据分析的不同需求和实体数据保存的不同方式。

父子维度

父子维度是由成员的父子关系定义的成员组织好的层次结构,这种数据关系发生在一个表内。通常,其各个分支并不具有对称数量的级别。

虚拟维度

虚拟维度是基于物理维度内容的逻辑维度,这些内容可以是物理维度中的现有成员属性,也可以是物理维度的表中的列。 使用虚拟维度的优点是不占用磁盘空间,也不耗费处理时间。

成员(Member)

成员就是在给定的维度中的一个点,性别 Gender 层次有两个成员“男M”和“女F”,“贵州Guizhou”、“湖北Hubei”和“北京Beijing”就是省份 Province 的所有成员。

计算成员

建立起来的维度和度量值有时不能满足分析的需要,根据已有的维度和度量值进行计算,建立新的维度和度量值,称为计算成员。计算成员通过在原始数据上建模,生成有意义的业务指标来增强分析。计算成员将增加分析的价值,它们可以描述趋势、行为和异常情况。

成员属性

对于每一个【维度成员】,可以使用隶属于该数据表的【字段】,作为描述维度成员的属性,称为【成员属性】

成员表达式

成员(Member)是【维度】中的一个项目,当我们在【假设分析】模块中描述多维数据集的单元格时,【成员】是最低的参照层次。例如,我们已经建立的时间维度【时间】,该维度共有 1 个层次【保单日期】,【保单日期】下有 4 个级别:年、季度、月、日。可以使用如下表达式来代表【年】与【季度】中的成员:

  • [时间].[保单日期].[年],[时间].[保单日期].[季度]

成员的具体的指定方法有两种,例如在【时间】中,针对年级别为2003年的成员可以使用如下表示:

  • [时间].[2003]或者[时间].[保单日期].[年].&[2003]

层次(Hierarchy)

维度的范围有大小的概念,例如国家的范围大,省的范围次之,城市的范围更小。可以把范围的大小的概念称之为层次。在维度节点下建立层次目录,把有范围大小的维度通过拖拽放入层次中。范围大的放在最上面,范围小的维度放在下面。维度的顺序,决定了钻取的顺序。当需要上钻时,会找到与当前维度最近的上一个维度 (即范围大点的维度)。当需要下钻时,会找到与当前维度最近的下一个维度 (即范围小点的维度)。

级别(Level)

级别是来自同一层次根节点且距离相同的一系列成员的集合。

度量(Measure)

度量表示可被用于衡量和统计的数值,销售额,利润,成本等都是度量。数值类型的数据都被划分为度量了。另外把日期,时间也划分为度量。常用来做度量的数据类型包括:

数据类型说明
Long长整数
Short短整数
Integer整数
Byte字节
Float单精度浮点数
Double双精度浮点数
Date日期
Time时间
Timestamp日期 + 时间

度量同样也可以变为维度。 度量支持的统计函数较多,支持所有本产品提供的统计函数。

函数名用途
Sum返回数据集中所有数据之和
Count返回数据集中的数据个数
Distinct Count返回数据集中不同值的数目
Max返回数据集中的最大数值
Min返回数据集中的最小值
Range返回数据集的范围
Average返回数据集中的平均值

事实表(Fact Table)

事实表是指保存了大量业务度量数据的表。同时包含了一些与维度表有外键关系的列。事实表不应包含描述性信息,也不应该包含除数字度量字段以及使事实表和维度表对应的外键字段之外的任何数据。

维度表(Dimension Table)

维度表包含了度量衡数据的描述性信息。比如具体日期的描述。

聚集表(Aggressive Table)

聚集表是指根据事实表做了一些前置计算后得到的粗粒度的数据表。比如一张销售的事实表的记录粒度到每天,而聚集表可能是将一年的销售额统计之后生成的数据表。

多维分析操作

钻取

钻取是指改变维的层次,变换分析的粒度。它包括向下钻取(Drill-down)和向上钻取(Drill-up)/(Roll-up)。Drill-up 是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而 Drill-down 则相反,它从汇总数据深入到细节数据进行观察或增加新维。

切片和切块

切片和切块是指在一部分维上选定值后,关心度量数据在其他维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。

旋转

旋转是指变换维的方向,即在表格中重新安排维的位置(例如行列互换)。

ROLAP 和 MOLAP

ROLAP(Relational Online Analytical Processing)和MOLAP(Multidimensional Online Analytical Processing)是两种主要的OLAP实现方式。

ROLAP

ROLAP是基于关系型数据库的OLAP系统,它将数据存储在关系型数据库中,并在查询时直接从数据库读取数据进行计算和分析。这种方法不需要预先计算数据,而是实时地根据用户的查询请求进行数据处理。ROLAP通常采用维度模型,如星型模型、雪花模型等来组织数据,这有助于提高查询性能和灵活性。

MOLAP

MOLAP是一种将数据进行多维预处理的OLAP技术。它通过将数据进行预计算并将聚合结果存储到CUBE模型中,以多维数组的形式物化到存储系统中,从而加快后续查询的速度。MOLAP的优点在于查询速度快,但它可能会因为预聚合数据的生成而增加存储成本,并且对后期数据查询的灵活性有所限制。

混合 OLAP 技术

结合了MOLAP和ROLAP的优点,根据不同的查询需求选择使用预聚合数据或是原始数据进行处理,以达到最佳的查询性能。