`

SQL Server 2005 OLAP技术漫谈

阅读更多

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

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

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

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

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

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

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

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

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

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

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

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

创建数据 CUBE

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

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

从上面分析,我们可以得出结论,如果不能解决 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 Server OLAP 表现层工具等软件一般都会涉及到多个专业软件厂商,所以在采购成本上居高不下;

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

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

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

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

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

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

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

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

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

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

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

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

<o:p> </o:p>

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

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

Max@X Analyser OLAP 实施可以分为三个步骤进行,读者有兴趣可以尝试一下,看看能否在 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 的授权体系中可以得到定义;其二是 OLAP CUBE 运算,我们在“什么是 OLAP ”一文中曾经谈到 CUBE 预运算的必要性,所以在部署项目后,我们还需要在 Portal 的任务定义模块中,定义 CUBE 运算创建的任务时间。

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

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

OLAP 分类的基本概念

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

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 同时支持 ROLAP MOLAP 两种模式,是属于第三种 HOLAP BI 产品。
  大致的原理为:常规模式下, 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 Analyser Portal 中,已经提供了定时 Mail 的功能,只要系统管理员设定,就可以自动完成 Mail 分发的功能。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics