1. OLAP的作用和功能
OLAP(On-Line Analysis Processing)在线分析处理是一种共享多维信息的快速分析技术;OLAP利用多维数据库技术使用户从不同角度观察数据,它用于支持复杂的分析操作,侧重于对管理人员的决策支持,可以满足分析人员快速、灵活地进行大数据复量的复杂查询的要求,并且以一种直观、易懂的形式呈现查询结果,辅助决策。
OLAP用了多维分析的技术。尽管关系型数据库所存储的所有数据都是以行和列的形式存在的,但一个多维数据库还是可以看做一个由轴(axes)和单元(cell)所组成的立方。借助这个立方,OLAP可以完成钻取、切片、切块、旋转等操作。所谓的钻取操作就是改变维的层次,变化分析的粒度。Drill-up是将低层次的数据概括到高层次的汇总数据或者说是减少维度;Drill-up则是相反,是将汇总的数据深入到细节,或说是增加新维。切片和切面操作是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个或以上,则是切块。旋转操作即是变换维的方向,即在表格中重新安排维的放(例如行列互换)。
那么这个立方是以什么形式存储在关系数据库中的呢?它通常对应一个星型模型或者雪花模型。所谓的星型模型,它是由若干个事实表和若干个维表组成,事实表包括所有分析维度的外键和一个度量,维表对应于各个分析的角度,它除了主键以外还包含描述和分类信息。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的“层次”区域,这些被分解的表都连接到主维度表而不是事实表。
2. Mondrian的选型依据
Mondrian是一个OLAP的服务引擎,而且是一个ROLAP引擎。它本身不管理数据的储存,这是由关系数据库来做的,它使用JDBC读取数据,因此,不管数据存储于普通关系数据库,或是数据集市、数据仓库,只要能用JDBC访问就可以。
Mondrian主要功能就是对数据量极大的数据表和相关联的多个维度表进行查询、汇总、轴变换以及上卷、下钻等操作,查询可以非常复杂,如果没有Mondrian引擎这是很难完成的。
Mondrian完成多维度的查询、汇总等相关操作是通过书写相应的MDX语句来完成的。MDX是多维数据库的查询语言,这已成为一个标准,就跟SQL是关系数据库的查询语言类似。然后,Mondrian会解析MDX语句,转化成SQL来查询关系数据库,这个查询可能是多条的。本质是mondrian就是一个解释器,将MDX语句解释为SQL语句来完成相关查询。
Mondrian的相关测试:
当数据量为1亿时,刷新立方所需花费的时间为33052.0毫秒。所谓的刷新是立方操作就是后台数据库中对表进行了相关增删改查操作,程序调用了刷新立方函数的过程。它会清除Mondrian缓存,重新刷新schem文件。此外,当数据量为一亿时,初次