480 likes | 733 Views
第 3 章 联机分析处理 (2). 3.4 OALP 的多维数据分析(下). 3.4.3 广义 OLAP 功能 3.4.4 数据立方体 3.4.5 多维数据分析的 MDX 语言及其应用. 3.4.3 广义 OLAP 功能. 1 、基本代理操作 当系统处于某种特殊状态时 “ 代理 ” 提醒分析员。 ( 1 )示警报告 定义一些条件,一但条件满足,系统会提醒分析员去做分析。如每日报告完成或月定货完成等通知分析员作分析。 ( 2 )时间报告 按日历和时钟提醒分析员。 ( 3 )异常报告
E N D
第3章 联机分析处理 (2)
3.4 OALP的多维数据分析(下) 3.4.3 广义OLAP功能 3.4.4 数据立方体 3.4.5 多维数据分析的MDX语言及其应用
3.4.3 广义OLAP功能 1、基本代理操作 当系统处于某种特殊状态时“代理”提醒分析员。 (1)示警报告 定义一些条件,一但条件满足,系统会提醒分析员去做分析。如每日报告完成或月定货完成等通知分析员作分析。 (2)时间报告 按日历和时钟提醒分析员。 (3)异常报告 当超出边界条件时提醒分析员。如销售情况已超出预定义阈值的上限或下限时提醒分析员。
2.数据分析模型 (1)绝对模型 通过比较历史数据值或行为来描述过去发生的事实。 绝对模型只能对历史数据进行比较,并且利用回归分析等一些分析方法得出趋势信息。
(2)解释模型 • 利用系统已有的多层次的综合路径层层细化,找出事实发生的原因。 • 假设今年销售量下降,那么解释模型应当能找出原因,即下滑与时间、地区、商品及销售渠道四者中的何种因素有关。
(3)思考模型 • 说明在一维或多维上引入一组具体变量或参数后将会发生什么。 • 例如该公司决策者为了了解某商品的销售量是否与顾客的年龄有关,引入了行变量-年龄,即在当前的多维视图上增加了顾客的年龄维。
(4)公式模型 • 该模型表示在多个维上,需要引入哪些变量或参数,以及引入后所产生的结果。 • 公式模型自动完成上述变量引入工作,从而最终找出与销量有关的全部因素,并给出了引入后的结果。
3.商业分析模型 (1)分销渠道的分析模型 (2)客户利润贡献度模型 (3)客户关系(信用)优化模型 (4)风险评估模型
(1)分销渠道的分析模型 • 通过客户、渠道、产品或服务三者之间的关系,了解客户的购买行为、客户和渠道对业务收入的贡献、哪些客户比较喜好由什么渠道在何时和银行打交道。 • 为此,银行需要建立客户购买倾向模型和渠道喜好模型等。
(2)客户利润贡献度模型 • 通过该模型能了解每一位客户对银行的总利润贡献度。 • 知道哪些利润高的客户需要留住,采用什么方法留住客户,交叉销售改善客户的利润贡献度,哪些客户应该争取,完成个性化服务。
(3)客户关系(信用)优化模型 • 银行对客户的每一笔交易中,知道客户需要什么产品或服务,例如,定期存款是希望退休养老使用,申请信用卡需要现金消费,询问放贷利息需要住房贷款等。 • 通过模型计算,主动地对客户沟通并进行交叉销售,达到留住客户和增加利润的目标。
(4)风险评估模型 模拟风险和利润间的关系,建立风险评估的数学模型: 在满足高利润、低风险客户需求的前提下,达到银行收益的极大化。
3.4.4 数据立方体 1.概述 1996年,Jim Gray等首次提出了数据立方体(Data Cube)的概念。 数据立方体就是数据仓库结构图(图2.1)中的综合数据层(轻度和高度)。基于数据立方体的生成方法一直是OLAP和数据仓库领域研究者所关注的热点问题。
对于多维数据分析而言,本质上是沿着不同的维度进行数据获取的过程。对于多维数据分析而言,本质上是沿着不同的维度进行数据获取的过程。 在数据立方体中,不同维度组合构成了不同的子立方体。 不同维值的组合及其对应的度量值构成了不同的查询和分析。 数据立方体的构建和维护等计算方法成为了多维数据分析研究的关键问题。
OLAP和数据仓库通常预先计算好不同细节层次和不同维属性集合上的聚集,并把聚集的结果存储到物理磁盘上(称为物化)。OLAP和数据仓库通常预先计算好不同细节层次和不同维属性集合上的聚集,并把聚集的结果存储到物理磁盘上(称为物化)。 • 把所有可能的聚集(即全聚集)都计算出来,可以得到最快的系统查询响应时间,
数据立方体是在所有可能组合的维上进行分组聚集运算(group by 操作)的总和。 聚集函数有:sum( )、count( )、average( ) 等。 数据立方体中的每一个元组(立方体的度量属性)被称为该立方体的上个格(cell),每个格在n 个维属性上有相应的值。 在未参与group by 操作的维属性上具有All 值(用﹡表示),而在参与group by操作的维属性具有非All 值。
例如,对于一个具有三个维属性 A、B、C 和一个度量属性 M 的数据集R(A,B,C,M). 其对应的数据立方体是在维属性集{ },{A},{B},{C},{AB},{AC},{BC},{ABC}上分别对度量属性进行聚集操作后的并集。 其中: { }表示进行聚集运算{*,*,*,聚集函数 (M)}; {A}表示进行聚集运算{A,*,*,聚集函数(M)}等。
这些聚集运算与操作结果是数据仓库中的一种高度综合级数据.这些聚集运算与操作结果是数据仓库中的一种高度综合级数据. 实质上是进行了数据的浓缩(压缩),也可称为泛化。最终所获得的这些数据立方体可用于决策支持、知识发现,或其它许多应用。
例如,对如表3.12所示的超市的基本数据集POS (product,type,counter,price),前三个属性分别代表(产品名、类型、柜台)为维属性. 现在对度量属性价格 price 进行取平均值(average)的聚集运算, 通过Cube操作可以得到一个具有三个维属性和一个度量属性的数据立方体Dpos,如表3.13所示。
全聚集的数据占据的空间是原始数据空间的数百倍,花费很长时间。全聚集的数据占据的空间是原始数据空间的数百倍,花费很长时间。 故数据立方体构建部分物化:即按照一定的规则选择数据立方体的一个子集进行预先计算。这种选择是存储空间和响应时间的一种折衷。
典型的压缩型数据立方体,包括: 冰山立方体、紧凑数据立方体、外壳片段立方体等。 随着流式数据处理技术的发展,流立方体生成方法越来越受到领域研究者的关注。
(1)冰山立方体 在冰山立方体的生成计算中,仅聚集高于(或低于)某个阈值的子立方体。 数据立方体的空间多数被低(或高)度量值的数据单元所占据,而这些数据单元往往是分析者很少关心的内容。这种方法的优点是能够减少构建数据单元所占用的存储空间。
例如,在表3.12中,设定聚集运算条件:M(AVG(price))≤ 1250,其冰山立方体为表3.14所示。 表3.14基本数据集POS的冰山立方体
(2)紧凑数据立方体生成方法 紧凑数据立方体生成方法的一个重要特点是能够保持数据立方体的钻取操作的语义。 这种紧凑数据立方体生成方法在压缩的方式和表现形式上表现出有不同的特征,包括: 浓缩立方体(Condensed cube)、商立方体(Quotient cube)等, 这些都是近年来出现的一系列新型的数据立方体的存储结构。
浓缩立方体 浓缩立方体计算方法的基本原理是,在某些属性或组合下的一个元组相对于其它元组具有唯一性,则称为基本单一元组(BST,Base Single Tuple)。 当它的超集(增加属性组合)也是BST,且都是取同一度量值,在聚集运算时,可以把这些属性的度量值对应的元组压缩成一条元组存储。
属性{ product }的所有超集{ product,type },{ product,counter },{ product,type,counter }也是BST,且都具有相同值。 如{ KONKA,﹡,﹡,1000 },{ KONKA,TV SET,﹡,1000 },{ KONKA,﹡,01,1000 },{ KONKA,TV SET,01,1000 }, 故可以将这些元组压缩存储为一条元组{ KONKA,﹡,﹡,1000 }。 同理,属性{ type}中,其属性值为 PHONE 的元组是BST,它和它的超集也可以压缩存储为一条元组{ ﹡,PHONE,﹡,2000 }。 经过这样的浓缩后,表3.13的的浓缩立方体为表3.15。
可以看出浓缩立方体是全聚集立方体的有效浓缩。可以看出浓缩立方体是全聚集立方体的有效浓缩。 • 由于在一般的应用中,当属性个数较多时,BST是广泛存在的。一般来说,其压缩率可以达到30% ~ 7O% 。
3.4.5 多维数据分析的MDX语言 及其应用 1.MDX语言简介 MDX(Multi Dimensional eXpressions,多维表达式)是联机分析处理(OLAP)和数据仓库应用中最广泛使用的软件语言(维度语言)。 MDX语言可以查询和管理多维数据仓库,MDX表达式可以用来创建新的计算成员。
MDX与SQL的比较 相同:MDX与SQL都包含“选择对象”(select子句)、“数据源”(from子句)以及“指定条件”(where子句), 不同:MDX结合了多维数据集,指定“维度”(On子句)和“创建表达式计算的新成员”(MEMBER子句)。 MDX语法还包含功能强大的函数,以协助数据处理与挖掘。
具体说明 (1)关键字SELECT后带需要检索内容的子句。 (2)关键字ON和维度(坐标轴)的名称一起使用,以指定数据库维度显示位置。 (3)MDX用大括号{ }包含某个特定维度或者多个维度的一组元素。 一个维度(度量维度或时间维度)的多个元素间用逗号(,)隔开。元素名称用方括号[ ]引用,并且不同组成部分之间用点号(.)分隔。
(4)在一个MDX查询中,不同查询的维度(坐标轴)的数量可能不同。前三个坐标轴以“columns”、“rows”及“pages”命名,更多的坐标轴命名为:chapters、section等。也可以统一用axis(0)、axis(l)、axis(2)等表示坐标轴。 (4)在一个MDX查询中,不同查询的维度(坐标轴)的数量可能不同。前三个坐标轴以“columns”、“rows”及“pages”命名,更多的坐标轴命名为:chapters、section等。也可以统一用axis(0)、axis(l)、axis(2)等表示坐标轴。 (5) MDX查询中FROM子句指明用于查询数据的多维数据集。 (6) WHERE子句指定在列或行(或者其他的坐标轴)上没有出现的多维数据集的成员。
2.多维数据查询 在多维数据集中用得最多的查询是对多维数据的切片查询,通过不同角度的切片来发现问题。 通过下钻操作一般用来查询问题的原因。下面分别通过切片查询和向下钻取操作例子进行说明。
例1:切片查询 • 在多维数据集Sales中,顾客所在的MA州,对时间2009年Q1(1季度)和Q2(2季度)的销售额Dollar Sales和销售数量Unit Sales的情况,进行切片查询。 • MDX语言的切片查询语句:
SELECT { [Measures] . [Dollar Sales],[Measures] . [Unit Sales] } • On columns, { [Time] . [Q1,2009], [Time] . [Q2,2009] } • On rows • FROM [Sales] • WHERE ([Customer] . [MA])
例2:向下钻取操作 • 一种常用的查询是获得一个成员的子成员。这么做的目的是执行一个向下钻取操作,即获得基于一个共同父成员的范围内的成员。 • MDX提供. Children函数来完成这个操作。
下面将对多维数据集Sales中,顾客所在的TX州,向下钻取查询:下面将对多维数据集Sales中,顾客所在的TX州,向下钻取查询: • 工具产品 [Product] . [Tools]成员和它的子成员(Tool1、… Tool5),以及2009年Q3(3季度)成员的子成员(7、8、9)三个月的销售数量[Measures] . [Unit Sales]情况。 • MDX语言的向下钻取操作语句如下:
SELECT { [Time] . [Q3, 2009] . Children } • on columns, { [Product] . [Tools], [Product] . [Tools] . Children } • On rows • FROM Sales • WHERE ([Customer] . [TX], [Measures] . [Unit Sales])
创建新的计算成员 • With MEMBER [Measures] . [Avg Sales Price] AS ‘[Measures] .[Dollar Sales]/[Measures] .[Unit Sales]’ SOLVE ORDER =0 MEMBER [Time] . [Q1 to Q2 Growth] AS ‘[Time] .[Q2,2009]- [Time] .[Q1,2009]’ SOLVE ORDER =1 • SELECT {[Measures] . [Dollar Sales] , [Measures] . [Unit Sales] , [Measures] . [Avg Sales Price] } • on columns, { [Time] . [Q1,2009], [Time] . [Q2,2009], [Time] . [Q1 to Q2 Growth] } • On rows • FROM Sales • WHERE ([Customer] . [MA])
With MEMBER [Measures] . [Avg Sales Price] AS ‘[Measures] .[Dollar Sales]/[Measures] .[Unit Sales]’ SOLVE ORDER =0 MEMBER [Time] . [Q1 to Q2 Growth] AS ‘[Time] .[Q2,2009]- [Time] .[Q1,2009]’ SOLVE ORDER =1 • SELECT {[Measures] . [Dollar Sales] , [Measures] . [Unit Sales] , [Measures] . [Avg Sales Price] } • on columns, { [Time] . [Q1,2009], [Time] . [Q2,2009], [Time] . [Q1 to Q2 Growth] } • On rows • FROM Sales • WHERE ([Customer] . [MA])
MDX语言更多功能 • MDX语言中,允许的算术操作符有:加+、减-、乘*、除/、括号( )。 • 允许的函数有:Avg()平均值; • Aggregate()聚合函数定义的聚合值; • Count()值或元组的个数; • Sum()值的和; • Max()最大值;Median()集的中位值;Min()最小值;Stdev()值的样本标准差;StdevP()值的总体标准差;Var()值的样本方差;VarP()值的总体方差…等等。
允许额外的数字计算函数有: • Abs(num),num的绝对值; • Exp(N),e的N次幂 ; • Factorial(N),N的阶乘; • Ln(nun),Num的自然对数…等等。 MDX语言还具有更高级的功能,能帮助公司进行:保险索赔分析、产品质量控制和顾客购物偏好等更高层次的决策分析。
习 题 15、16、19、 20、21