`

SQL Server 2005 OLAP技术漫谈

阅读更多

SQL Server 2005 OLAP技术漫谈<o:p></o:p>

<!---->一、            <!---->什么是OLAP<o:p></o:p>

OLAP,英文全称为On-Line Analysis Processing,中文名称为联机分析处理,也称为在线分析处理。联机分析OLAP是由关系数据库之父E.F.Codd1993年提出的一种数据动态分析模型,它允许以一种称为多维数据集的多维结构访问来自商业数据源(如数据仓库)的经过聚合和组织整理的数据。以此为标准,OLAP作为单独的一类产品同联机事务处理(OLTP)得以明显区分。

有点深奥是不是?其实并不复杂,OLAP最基本的概念其实只有三个:多维观察、数据撷取、CUBE(维度)运算。

从动态的多维角度分析数据

在我们的平时工作中,会遇到各种问题,在分析问题的时候,同样的现象,我们会从多个角度去分析考虑,并且有时候我们还会从几个角度综合起来进行分析。这就是OLAP分析最基本的概念:从多个观察角度的灵活组合来观察数据,从而发现数据内在规律。

OLAP将数据分为两种特征,一种为表现特征,比如一个销售分析模型中的销售额、毛利等;还有一种为角度特征,比如销售分析中的时间周期、产品类型、 销售模式、销售区域等。前者是被观察的对象,OLAP术语称之为度量数据,后者为观察视角,OLAP术语称之为维数据

如果建立这样一个模型,我们就可以根据业务需求,从产品类型角度去观察各个销售地区的销售额数据(以产品类型和销售地区为维、以销售额为度量);或者 我们还可以从销售模式的角度去观察各个销售地区的销售额数据(以销售模式和销售地区为维、以销售额为度量)。

<!----><!----><!----> 
  在Max@X AnalyserOLAP模型中,每个模型最多可以设定255个维、1024个度量,也就是说,我们可以从255个角度或者角度组合,去同时观察1024个数据对象的变化。

对数据进行钻取,以获得更为精确的信息

在分析过程中,我们可能需要在现有数据基础上,将数据进一步细化,以获得更为精确的认识。这就是OLAP中数据钻取的概念。

比如,在销售分析中,当我们以产品类型和销售地区为维、以销售额为度量进行分析的时候,可能希望进一步观察某类产品的不同销售模式在各个销售地区的表现,这时我们就可以在产品大类这个数据维下面,再加上一个销售模式维,从而获得相应的信息。

<!----><!----><!---->

创建数据CUBE

那么,要满足上述运算,需要什么样的前提呢?

我们可以想像,和报表不同,OLAP分析所需的原始数据量是非常庞大的。一个分析模型,往往会涉及数百万条、数千万条、甚至更多;而分析模型中包含多 个维数据,这些维又可以由浏览者作任意的提取组合。这样的结果就是大量的实时运算导致的时间延滞。我们可以设想,一个对于1000万条记录的分析模型,如 果一次提取4个维度进行组合分析,那么实际的运算次数将达到41000次方的数量:这样的运算量将导致数十分钟乃至更长的等待时间。如果用户对维组合次 序进行调整,或者增加减少某些维度的话,又将是一个重新的计算过程。

从上面分析,我们可以得出结论,如果不能解决OLAP运算效率问题的话,OLAP将是一个毫无实用价值的概念。那么,作为一个成熟产品是如何解决这个问题的呢?这就是OLAP中一个非常重要的技术:数据CUBE预运算。

一个OLAP模型中,度量数据和维数据我们应该实现确定,一旦两者确定下来,那么我们可以对数据进行预先的处理,在正式发布之前,将数据根据维进行最 大限度的聚类运算,运算中会考虑到各种维组合情况,运算结果将生成一个数据CUBE,并保存在服务器上。这样,当最终用户在调阅这个分析模型的时候,就可 以直接使用这个CUBE,在此基础上根据用户的维选择和维组合进行复运算,从而达到实时响应的这么一个效果。

作为一个成熟的产品,Max@X Analyser无论是在CUBE创建还是后续的浏览操作,效率都是非常高的。测试结果表明:原始数据行数在3200万条记录的时候,包含10个维数据组 合、2个度量数据的CUBE,创建周期为132分钟,装载效率是12.5秒。这样的成绩对比世界上任何一个高端OLAP同类产品,都不逊色。(需要更为详 细的测试报告,可以与炎鼎软件联系)。<o:p></o:p>

补充说明

上面所说的,是OLAP最基本的概念,除此以外,OLAP通常包括的功能包括数据旋转(变换观察维组合顺序)、数据切片(过滤无关数据,对指定数据进行重点观察),以及对数据进行跨行列运算(如Max@X Analyser中的增加行列差额、等比环比等扩展运算)。

如果您希望了解更多关于OLAP的信息,请与炎鼎软件技术支持联系。

<o:p> </o:p>

<!---->二、            <!---->报表与OLAP价值取向<o:p></o:p>

一个完整的BI解决方案,无论缺少什么,报表和OLAP是不可或缺的组成部分。那么,报表和OLAP究竟有哪些本质差别,并且他们的应用价值目标又是什么呢,本文将为您一一详述。

报表的定义

报表是指定数据的固定形态展现。报表的主要属性特征表现为:数据结构固定、数据表现样式固定、数据提取范围可以由浏览者临时通过报表参数进行控制,也 可以预先固定(比如生产日报,既可以固定体现当天的生产数据,也可以由浏览者确定是要调阅某一指定日期的生产数据)。此外,报表在应用上的价值特征表现 为:报表是一种个性化的、经验化的分析产物,同样的数据和同样的分析目标,根据浏览者的经验以及关注重点不同,可能会有不同的样式要求。报表对样式的要求 是很严格的,设计合理的报表,不仅表现形式美观,更重要的是可以帮助浏览者迅速地判断出当前数据有无异常,以及对当前企业的特定运作状态有直观的了解。

OLAP的定义

与报表不同,OLAP在表现样式上比较单一,一般表现为多重交叉样式,和报表中的交叉报表在表现上比较类似。OLAP是一种分析模型,它更为关心的是如何帮助浏览者对数据的内在规律进行分析,找出数据表象下的内在因素。因此,OLAP更加侧重于维度的任意灵活组合,以及大数据量下的运算效率。在应用 中,OLAP不是一种习惯性的数据观察,使用OLAP需要首先确定一个分析目标,然后才是根据目标,对OLAP进行进一步操作。

报表和OLAP两者如何结合

通过上面的定义,在Max@X Analyser中,我们对报表和OLAP的价值取向做如下定义:报表是用来快速发现和定位问题或异常的,而OLAP是用来深入分析导致问题或异常的具体原因的。

在使用中,浏览者会根据报表来快速的定位问题。前面我们已经讲到,报表是一种经验化的东西,有经验的浏览者可以根据报表非常敏锐地发现目前存在的问 题,比如产能的异常降低、订单交付周期的普遍延滞等等。一旦确认问题,就可以明确可以用于表现问题的数据范围。而后,使用OLAP对这些数据进行多角度的 观察,从而进一步了解导致这些问题的原因。比如,我们现在可以确定,产品的销售额下降是一个主要问题,那么我们可以从系统上调出销量分析OLAP模型,从 销售地区、销售周期、销售模式、产品等多个角度对销量数据进行组合观察,最终我们可能会确定,真正的原因是某个销售地区的销售模式调整导致该地区某些产品 销量的严重下滑。

<!---->三、            <!---->跨越OLAP实施维护障碍<o:p></o:p>

传统方式下的OLAP实施一般需要几个步骤:

<!---->第一,   <!---->建立数据仓库,将原始数据(可能存储在不同数据库)进行抽取、清洗、转换、过滤后,形成统一的数据,存储在数据仓库中;<o:p></o:p>

<!---->第二,   <!---->根据业务需求建立数据集市;<o:p></o:p>

<!---->第三,   <!---->部署专业的OLAP Server,并使用工具创建OLAP模型;<o:p></o:p>

<!---->第四,   <!---->建立发布机制,为发布设计外围应用扩展。<o:p></o:p>

上述过程不能说不科学或者不合理,然而给实际应用带来的障碍也是显而易见的:

是总体实施成本高,由于数据仓库、专业OLAP ServerOLAP表现层工具等软件一般都会涉及到多个专业软件厂商,所以在采购成本上居高不下;

是实施周期长,数据仓库的建立往往需要三个月到半年以上的时间,等到数据仓库建设完成,才能进行后续的操作;

是对实施和维护人员的专业技能要求比较高,维护人员和实施人员同时掌握数据仓库、OLAP Server等方面的专业IT技能,这对传统企业来说是一个非常强烈的制约因素。

上述三点,是为什么OLAP技术已经发展了10多年,但仍然没有象ERPCRM等产品一样被大多数企业应用的主要原因。

Max@X Analyser的出现打破了这个规律,通过以下的技术创新,Max@X Analyser使得OLAP不仅可以在银行、通信等具有大手笔IT投资能力,并且拥有大量IT高端人才的企业应用,同时在制造、贸易、物流、零售等大多 数中小企业,同样可以发挥自身的应用价值。

1、抛弃数据仓库,使用虚拟数据源及内置SQL引擎

数据仓库的主要作用,是整合多个异构数据库的数据,使之统一,并且在数据结构上重新定义,从而满足查询和统计的需求。

Max@X Analyser中,独辟蹊径,使用虚拟数据源的方法,同样可以满足多异构数据库数据整合的效果,不同之处在于:数据仓库的整合是对所有原始数据的整合, 并且在整合过程中针对分析目标进行数据预运算。而Max@X Analyser的整合是针对分析目标的整合,将当前CUBE所需的数据单独提取并整合,显然后者更为直接和高效。另外,在Max@X Analyser中,数据预运算是和OLAP设计过程紧密相关的,也就是说,数据的预运算是在OLAPCUBE创建过程中进行的,这也同样使得数据运算 量降低,从而得到更为明显的运算效率提升。

2、一体化设计,在一套产品中同时提供数据提取、整合、转换、CUBE创建等功能

Max@X Analyser同时提供了包括设计环境、前端展现以及后台服务器在内的一体化产品解决方案,从而可以明显明显降低在软件上的采购成本,使之处于一般企业 可以承受的范围内。另外,在设计上,由于是采用一体化的设计过程,在一套产品中同时提供数据提取、整合、转换、CUBE创建等功能,所有的设计元素在原理 上统一,并且可以在报表和OLAP之间共享设计结果,从而带来更为简化的设计过程,缩短实施周期。

3、人性化设计,降低维护技术难度,使一般数据库管理员可轻松掌握

Max@X AnalyserOLAP模型的创建和维护简化为三个环节:设计数据源、创建OLAP模型、通过Portal在线发布。在Max@X AnalyserOLAP的设计比一般报表的设计更加简单。

并且,在上述三个环节中,系统实施或者维护人员仅仅需要掌握一般数据库的操作技能,懂得如何使用SQL或者存储过程对数据进行查询,就可以按照向导提 示,快速创建或者调整OLAP模型,并进行发布。而事实上,任何一个企业的IT维护人员,数据库操作是最基本的专业技能,也就是说,从技术角度,传统意义 上的OLAP实施维护障碍已经打破,企业可以根据自身业务需求,随时调整或者增加OLAP模型,使得项目实施后的生命周期得到延长。

<o:p> </o:p>

<!---->四、            <!---->即插即用的OLAP技术<o:p></o:p>

通过上面第三点的学习,我们了解到传统方式下的OLAP实施需要的几个步骤,其中,耗费周期最长的应该是数据仓库的建设。由于Max@X Analyser通过技术创新跨越了这一步骤,从极大压缩了相应的实施周期。

Max@X AnalyserOLAP实施可以分为三个步骤进行,读者有兴趣可以尝试一下,看看能否在10分钟内完成从软件安装调试到OLAP设计部署的过程。

第一步、设计数据源

OLAP 分析所需要的数据需要以某种方式从数据库中提取出来,比如使用 SQL 语句,或者使用一个存储过程。这个 SQL 或者存储过程称之为一个数据源。

这个过程包括:

1、在Max@X Analyser设计器中建立与多个数据库的连接参数;

2、按照数据提取需求,根据向导提示,选择并创建适当类型的数据源,并以图形化方式创建SQL等数据提取方法;

3、如果涉及多个异构数据库,还需要将这些异构数据库的数据以虚拟数据源形式建立关联整合,将其整合为一个在结构、逻辑上统一的数据源。

第二步、设计OLAP模型

Max@X Analyser中,OLAP设计过程非常简单,通过向导创建一个OLAP模型,然后为该模型指定上一步设计的数据源,指定数据源返回信息中的维数据和度 量数据即可。如果度量数据定义并非简单的聚类求和运算,还可以进一步设定度量数据的计算方法。

第三步、发布OLAP设计成果

Max@X Analyser提供了一个功能完整的Portal,最终用户就是通过这个Portal进行报表浏览和OLAP调用的。在Max@X Analyser中,OLAP和报表是在项目中一体化维护发布的,所有只要针对项目发布即可。

完成Max@X Analyser的项目发布后,还需要做两件事情,其一是OLAP使用授权,这在Portal的授权体系中可以得到定义;其二是OLAPCUBE运算,我们在“什么是OLAP”一文中曾经谈到CUBE预运算的必要性,所以在部署项目后,我们还需要在Portal的任务定义模块中,定义CUBE运算创建的任务时间。

好了,通过以上三个步骤,一个新的OLAP模型不仅已经创建,并且已部署发布了。如果操作者是一个熟练的数据库管理员的话,这个过程完全可以控制在10分钟以内完成。相对于传统产品动辄3个月半年的实施效率,实在是天壤之别了。

<!---->五、            <!---->兼顾OLAP的效率与灵活性<o:p></o:p>

OLAP分类的基本概念

OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAPMOLAPHOLAP

ROLAP 示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和 维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了 型模式。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为雪花模式ROLAP的最大好处是可 以实时地从源数据中获得最新数据更新,以保持数据实时性,缺陷在于运算效率比较低,用户等待响应时间比较长。

MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成数据立方体(Cube的结构,此结构在得到高度优化后,可以最大程度地提高查询性能。随着源数据的更改,MOLAP 存储中的对象必须定期处理以合并这些更改。两次处理之间的时间将构成滞后时间,在此期间,OLAP对象中的数据可能无法与当前源数据相匹配。维护人员可以对 MOLAP 存储中的对象进行不中断的增量更新。MOLAP的优势在于由于经过了数据多维预处理,分析中数据运算效率高,主要的缺陷在于数据更新有一定延滞。

HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP),用户可以根据自己的业务需求,选择哪些模型采用ROLAP,哪些采用MOLAP。一般来说,会将非常用或需要灵活定义的分析使用ROLAP方式,而常用、常规模型采用MOLAP实现。

Max@X Analyser是属于第三种的HOLAP产品

Max@X Analyser同时支持ROLAPMOLAP两种模式,是属于第三种HOLAPBI产品。
  大致的原理为:常规模式下,Max@X Analyser采用MOLAP以获取最大的应用效率,但是在用户使用参数对数据进行实时的精确提取并创建分析时,或者OLAP Server未找到对应的MOLAP CUBE时,系统将实时地向源数据库请求相关数据,并自动创建临时CUBE供浏览端分析使用,即ROLAP模式。

通过这两者的结合,Max@X Analyser的用户不仅能快速地调取常用分析模型,同时对临时的、个性化的精确数据提取也能有效支持,从而兼顾OLAP的效率和灵活性。

传统产品的OLAP在使用中必需不断请求服务器,从而导致无法脱机使用OLAP,使得OLAP使用价值大为降低。那么,Max@X Analyser是如何解决这个局限性的?请阅读下面的“OLAP的脱机与分发”。

<!---->六、            <!---->OLAP的脱机与分发<o:p></o:p>

想象一下这样几个应用场景(注,这些场景是Max@X Analyser在实际应用中发生过的真实场景):

场景一:某投资顾问公司为客户提供了VIP服务,VIP用户可以定期收到顾问公司发来的外汇、证券等分析数据,并可以使用OLAP方式对这些数据进行分析。考虑到数据安全性要求,顾问公司不打算在互联网上提供操作平台,而是直接将数据及分析模型发送到各个VIP客户的电子邮箱中,用户只能对收到的数据进行分析操作,以这样手段限制用户的访问范围,从而达到保证数据安全的目的。

场景二:某企业老总经常出差,在旅途中并不方便随时接入互联网以连接公司IT系统。更多时候是在有条件上网的时候,不方便详细观察分析业务数据,等到有空来做这些事情,又未必有网络条件了。

Max@X Analyser的解决方案

上面两个场景,都涉及到OLAP的脱机分发与使用。

Max@X Analyser通过浏览端的一个小插件完成这些功能。在标准的运行过程中,Max@X Analyser的服务器,将创建好的数据CUBE进行加密和压缩后,发送给浏览端,而后由浏览端进行自动的校验、解密、解压缩,并允许用户进行多维度的 OLAP分析。

Max@X Analyser具有世界上最先进的的CUBE创建算法,从而保证了CUBE数据在浏览端进行多维复运算的高效率和低运算负荷,在普通的PC上,可以达到秒级的响应指标。这样,Max@X Analyser就完全具备了脱机运行的条件,用户在分发的时候只要单独提取CUBE文件进行分发即可,剩余的事情由浏览端插件负责完成。

额外提一句,在Max@X AnalyserPortal中,已经提供了定时Mail的功能,只要系统管理员设定,就可以自动完成Mail分发的功能。

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics