OLAP是指联机分析处理(On-Line Analysis Processing),它的概念最早是由E·F·Codd博士于1993年提出,是一种用于组织大型商务数据库和支持商务智能的技术。OLAP数据库分为一个或多个多维数据集,每个多维数据集都由多维数据集管理员组织和设计以适应用户检索和分析数据的方式,从而更易于创建和使用所需的数据透视表和数据透视图。
由于现在计算机能力的大幅提升以及各种不同实现厂商的努力,OLAP已经克服了原来很多不能实现的技术难点。 但是由于现在数据爆炸似的增长以及客户新的功能需求,新的OLAP 无论在服务器端还是客户端都出现了很多新的技术。
HOLAP
最早实现HOLAP 的应该是Microsoft SQL Server Analytics , 07 年Oracle 发布的11g 也进入HOLAP 领域,在同一个数据库内即可以产生ROLAP 也可以使用MOLAP , 汇总和复杂的计算脚本放在MOLAP 里面,细节的数据可以直接通过查表得到。
Planning
这个算是最老牌的Essbase 产品线之一了 , 由于预算的东西都是建立在一个的汇总层上的,再加上有时候需要将大的指标切割给小的指标, 所有ROLAP 是完全不适合做这个东西的 。 IBM 收购Cognos 之后由于Cognos OLAP 的缺陷,又重新收购了专门以内存数据库出名的Applix (TM1), 其中就是看中的它的Planning 功能。 开源OLAP 里面Jedox 也在它的MOLAP 里面实现了Planning 的功能。
What-if and Write Back
这也是MOLAP 的老牌功能了,尤其是做财务的,基本每天都会模拟“如果产品价格提高10%,扣除固定的开销费用,收入会增加多少”。 而Write Back 则是将你what-if 条件模拟或者预测的数据写回到数据库中。 其中what-if 很多MOLAP 都可以模拟(有些在类似excel 客户端做的)。 而做的更好的就是Essbase 也同时可以支持将what-if 模拟或者Planning 的结果写回MOLAP 里面去。
In Memory
除了Applix 的内存OLAP 之外,前端的BI 平台也开始纷纷提供内存化的OLAP 支持,当然除了提高了速度和吞吐能力之外,限制也比较明显,比如需要自己控制刷新,冗余数据太多,内存大小限制。 Actuate 和 MicroStrategy 都分别提供了自己版本的in-memory cube 功能,一般用作部门级别的小数据的快速分析用,另外就是以内存分析作为主要特性的Tableau , QlikView 除了将内存作为主要的数据源之外,还往往提供比较高的压缩比率从而可能容纳更多的数据。 一般的内存压缩率都在10倍左右,所以你客户端2G 的空闲内存往往可以查看真实的20G 的数据,而且还不用索引占储存空间反而速度更快。 不过由于这种客户端的内存管理上还有一些局限(拼命往内存装数据,如果内存不够了就开始使用磁盘,而它们磁盘的使用效率不是很高),所以无论以Server 端的内存管理见长的MicroStrategy 还是客户端内存管理的QlikView,Tableau 目前都还有需要克服的问题。 不知道MicroStrategy 下个版本会不会主攻这个方向将压缩率提高上去。
Multi Source
MicroStrategy 从去年开始的9系列就已经实现了Multi Source 功能, 而OBIEE 也在今年的更新版中实现了类似的MultiSource Federation 功能。 在不改变外部建模的情况下可以使sql 无缝的跳跃在多个不同层级的数据上。 比如你仍然可以使用MOLAP 来提供复杂的计算,模拟,预算,但是当用户需要钻取到细节的时候你仍然可以无缝的跳到关系型的数据库查询得到最细节的数据。 不过MicroStrategy 和OBIEE 的实现理念上有很大区别, OBIEE 是基于Federation 思路的,认为同一个层级的数据可以存在多个不同的物理位置,当你使用这些数据的时候再去不同的数据源取来然后进行整合,这个思路在Oracle 的ELT 中也有体现,而MicroStrategy 的Multi Source 的思路确实数据生命周期管理的思路(Data Lifecycle Management 也有叫Information Lifecycle Management) , 同一个层级的数据一般在一个物理位置上,如果你从一个层级跳到另一个层级,MicroStrategy 的Multi Source 功能能让你感觉展现上没有改变。 这对于像是某些部门需要特殊的分析而产生的额外维度,而对于细节数据却又是整个企业所共用的情况尤其适用。(Data Lifecycle Management 的实现在数据仓库里面也有体现,一个是Teradata 13的Virtual Storage , 一个是Greenplum 的Chorus)。
本文作者:分析型数据库 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow