Mondrian中文教程:理解Mondrian与OLAP

发布时间:2016年04月10日 // 分类:数据 // 暂无评论

*原文来自Pentaho官方文档:http://mondrian.pentaho.com/documentation/olap.php
鄙人也是刚刚开始学,翻译的不好意翻且语句不通顺,不要拍砖~*

Mondrian是一个用Java编写的OLAP引擎。简而言之,它通过执行由MDX语言写成的查询语句,从关系型数据库(RDBMS)中读取读取数据,并借助Java的API将查询结果以一种多维的格式呈现出来。现在让我们深入理解一下Mondrian的工作原理。

联机分析处理 - Online Analytical Processing

联机分析处理(OLAP)指的是实时处理大量数据。与联机事务处理(OLTP)常针对少量、特定、单一的记录进行修改不同,OLAP的每次查询都会涉及大量的数据且通常都是只读的。“联机”意味着即使在面对上百万条记录、好几G的大小的数据时也要能够快速响应用户的交互式查询。可以见得,要实现这样的功能需要面对相当大的挑战。

OLAP使用了一种被名为多维分析(Multidimensional Analysis)的技术。不同于关系型数据库往往将所有的数据都储存在只包含行与列的二维表中,多维数据集由轴(Axe)与单元(Cell)组成。譬如下面这份数据:

年份 2000 2001 增长
产品 销售额 销量 销售额 销量 销售额 销量
全部产品 $7,073 2,693 $7,636 3,008 8% 12%
— 图书 $2,753 824 $3,331 966 21% 17%
—— 小说 $1,341 424 $1,202 380 -10% -10%
—— 非小说 $1,412 400 $2,129 586 51% 47%
— 杂志 $2,753 824 $2,426 766 -12% -7%
— 贺卡 $1,567 1,045 $1,879 1,276 20% 22%


行轴包含了“全部产品”、“图书”、“小说”等,而列轴则包含了“2000”、“2011”年产品销量、销额的笛卡尔积,同时还包含了通过计算得到的“增长”。而表中每一个单元则表示所在年份、类别下的销售情况,例如杂志在2001年的销售额是$2,426。 相对于关系型数据库,它可以展现更丰富的数据。多维数据集中的数字并不一定是从关系型数据库直接抓取得到的。“合计”、“图书”、“小说”依次是上一个的子分类,将子分类卷起就可以得到其上一级的分类。“增长”则是通过特定计算公式对“2000”、“2001”的单元计算得来的。 在这里例子中所使用的维度是产品、时间、度量值,除此之外还有许许多多可以用以分类和过滤的维度没有在其中展示出来。分类的维度、层次和度量和称为一个Cube(立方体) 结语 - Conclusion ---------- 通过上面的例子,我希望我已经证明多维度呈现方式比其他方式都好。虽然目前有一些以多维格式存储数据的多维度数据库,但我还是认为使用二维的关系型格式是最简单的数据存储方式。 接下来,让我们一起看看OLAP系统的架构究竟是怎样的,下一节:Mondrian的架构 [1]: http://mondrian.pentaho.com/documentation/architecture.php

本文固定链接
https://www.ywlib.com/archives/mondrian-documentation-mondrian-olap.html

标签
mondrian中文教程, mondrian, olap

添加新评论 »