cognos 多维分析技术(OLAP)的进化过程

浏览: 3138

 image.png

发展背景

随着数据库技术的广泛应用,企业信息系统产生了大量的数据,如何从这些海量数据中提取对企业决策分析有用的信息成为企业决策管理人员所面临的重要难题。传统的企业数据库系统即联机事务处理系统(On-Line Transaction Processing,简称OLTP)作为数据管理手段,主要用于事务处理,但它对分析处理的支持一直不能令人满意。因此,人们逐渐尝试对OLTP数据库中的数据进行再加工,形成一个综合的、面向分析的、更好的支持决策制定的决策支持系统(Decision Support System,简称DSS)。企业的信息系统的数据一般由DBMS管理,但决策数据库和运行操作数据库在数据来源、数据内容、数据模式、服务对象、访问方式、事务管理乃至物理存储等方面都有不同的特点和要求,因此直接在运行操作的数据库上建立DSS是不合适的。数据仓库(Data Warehouse)技术就是在这样的背景下发展起来的。数据仓库的概念提出于20世纪80年代中期,20世纪90年代,数据仓库已从早期的探索阶段走向实用阶段。数据仓库中数据量巨大,为了提高性能,RDBMS一般也采取一些提高效率的措施:采用并行处理结构、新的数据组织、查询策略、索引技术等等。

联机分析处理(On-Line AnalyticalProcessing,简称OLAP)系统是数据仓库系统最主要的应用,专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业的经营状况,了解对象的需求,制定正确的方案。

体系架构

OLAP系统按照其存储器的数据存储格式可以分为关系OLAP(Relational OLAP,简称ROLAP)、多维OLAP(Multidimensional OLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型

  • ROLAP

ROLAP将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批物理视图存储在关系数据库中,不必将每一个SQL查询都作为物理视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为物理视图。对每个针对OLAP服务器的查询,优先利用已经计算好的物理视图来生成查询结果以提高查询效率。同时用作ROLAP存储器的RDBMS也针对OLAP作相应的优化,比如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(cube,rollup)等等。IBM Cognos BI里的通过多维逻辑模型DMR访问关系数据库进行多维分析就属于ROLAP。

  • MOLAP

MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。由于MOLAP采用了新的存储结构,从物理层实现起,因此又称为物理OLAP(Physical OLAP);而ROLAP主要通过一些软件工具或中间软件实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP(Virtual OLAP)。IBM Cognos BI里的通过物理的PowerCubes进行多维分析就属于MOLAP

  • HOLAP

正是由于MOLAP和ROLAP有着各自的优点和缺点(ROLAP数据量大,但是处理性能低;MOLAP处理性能高,但数据量不能太大),且它们的结构迥然不同,这给分析人员设计OLAP结构提出了难题。为此一个新的OLAP结构——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。例如:IBM Cognos BI就可以通过将高度汇总数据存在PowerCubes里,而明细数据使用DMR多维逻辑模型的方式,通过穿透钻取方式无缝的进行多维分析就属于HOLAP了。

image.png

现如今,随着企业的数据量呈指数级增长,而硬件性能的不断提升及内存价格的下降,一种新的基于内存的OLAP体系架构出现了。这种新架构既能够保证类似于MOLAP方式的高性能,也能基于更大的数据量进行分析,还不用定期将数据库里的数据刷新到OLAP服务器中来保证数据的实效性。它的诸多优势受到了市场的追捧,这种新的体系架构当之无愧地成为多维分析环境搭建的流行选择,而IBM Cognos BI的Dynamic Cubes就是它的代表作品。

动态立方体(Dynamic Cubes)介绍

  • 为什么要使用动态立方体(Dynamic Cubes)

我们知道,随着数据量的不断增加,一些的数据仓库原有多维分析技术架构已经逐渐不能满足业务用户的性能需求,特别是针对一些超大型的数据源,比如TB级的详细数据。这些客户通常只能通过使用汇总表、聚合表来提升访问性能,但仍充满挑战。例如:在美国有一家制药企业,分析所有的处方。某银行对客户、家庭及他们的关联客户进行交易模式分析,等等。他们用传统的解决方案(MOLAP、ROLAP)都是有局限性的,因为他们不能同时兼顾到大数据量与高性能的访问。

image.png

如上图所示,在IBM Cognos BI对多维分析的传统方式中,32位的PowerCubes需要对详细数据进行大量的聚合,才能保证Cube的数据文件不至于太大;64位的TM1cubes能够处理大数据量,但通常设计用于需要进行回写的what-if应用场景,而非用于纯的BI报表和分析;基于关系数据库的OLAP需要可以处理任意数据量,但即使使用DQM(动态查询模式),随着数据量的增加,性能也会下降。在这种情况下,动态立方体(DynamicCubes)应运而生。

  • 什么是动态立方体(DynamicCubes)

动态立方体是在传统ROLAP的基础上,增加了基于内存的OLAP模块。它直接从关系型的数据仓库里通过动态查询模式取数,并提供一个多维度的视图来进行性能的加速。动态立方体在Cognos的查询堆栈里引入一个性能层,可以满足用户对大型数据仓库进行低延迟、高性能的多维分析,它可以支持TB级的数据量。动态立方体是可扩展的,它也可以利用缓存、已优化的预聚合(in-memory或in-database)、优化SQL来达到高性能。它具有以下特点:

  • 使用简单的、多通道的SQL进行关系数据库的查询优化;
  • 能够最小程度的降低数据从关系数据库到Cognos动态立方体引擎间的数据移动;
  • 聚合感知,能够鉴别需要通过in-memory还是通过in-database聚合表进行达到最优性能;
  • 提供Aggregate Advisor工具,可以通过日志分析预聚合(in-memory或in-database)的效率来进行性能优化。
  • 动态立方体(Dynamic Cubes)的工作原理

动态立方体基于上百万条记录或者更多的大数据量的事实表与有上百万个成员的维表创建多维模型,可以达到低延迟的数据分析。如下图所示,通过动态查询模式(DQM),动态立方体将数据库内数据加载到服务器内存作缓存,包括维度成员、事实表数据、表达式、结果集、聚合表,来提升多维分析的访问性能。一旦缓存被加载,所有的用户就能够通过统一的安全认证看到他们能够看到的数据。而聚合感知就是能够保证数据查询通过选择最合适的聚合表来达到数据访问高性能。

image.png

下图展示了动态立方体在整合IBM Cognos BI平台上面的位置。

image.png

推荐 1
本文由 攻城的狮子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

好久没玩OLAP

要回复文章请先登录注册