相关术语及说明
OLAP(On-line Analytical Processing,联机分析处理)技术是为了数据仓库与多维数据分析而设计的一种技术。它允许用户以快速、高效和交互式的方式对数据进行复杂的查询和分析。
数据库
数据库是相关联的数据的集合;用综合的方法组织数据,保证尽可能高的访问效率;具有较高的数据独立性;具有安全控制机制,能够保证数据的安全、可靠;允许并发的使用,能有效、及时的处理数据,能保证数据的一致性、完整性。
多维分析元素
OLAP 基于多维数据模型,支持数据的多维展现,如星型模型和雪花模型,使用户能够从多个维度进行数据分析。 多维模型主要包含这几个概念:数据立方(Cube)、维度(Dimension)、层次(Hierarchy)、级别(Level)、成员(Member)以及度量(Measure)。
数据立方(Cube)
数据立方也可称为多维数据集,代表用三维或更多为描述的一个对象,每个维彼此垂直。数据的度量值发生在维的交叉点上,下图是一个立方体的实例,它有三个维度:时间,产品,工厂。度量值是维与维的交点产生的小立方体单元格,它描述了产品的生产数量。
一个多维数据集(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 则相反,它从汇总数据深入到细节数据进行观察或增加新维。