Pentaho Analysis (即 Mondrian) 是一个强大的 OLAP工具。它可以封装任何JDBC数据源并且把数据以多维的方式展示出来。已经有很多文档介绍如何把Mondrian与一个数据库连接在一起, 以及如何定义 Mondrian.xml 这个schema 文件等等。
使用一个来自MDX的连接并不总是很容易的… MDX有多强大呢? 为什么我要用MDX来做多维分析而不是用SQL? 为什么不是在我的事实表里创建其它的指标来支持查询,而是使用MDX? 这里我就不多说MDX这个语言表达式的好处了。因为关于MDX已经有很多书和文档资源。
可以说MDX使得某些分析查询(年到天,部分到全部,现在与过去对比)很容易… 有时候是令人尴尬的容易,对比我们一贯使用在纯"星型模型关系和SQL group by"领域.
让我们创建一个自定义的MDX 指标,并在后面使用它。我将展示如何在Mondrian里毫不费劲地为你的最终用户提供多维分析。
- 下载最新的Pentaho预配置版本(即DEMO):
http://www.pentaho.org/download/latest.html - 解压到你本地的机器上的某个目录 (我们这里暂时把这个目录称为$PROOT).
- 双击 "$PROOT/pentaho-demo/start-pentaho.bat." , 当你看到 "Pentaho BI Platform Ready"时,Pentaho平台就准备好了。(译者注:如果是中国的用户,可能会在控制台上看到Pentaho BI???????.。这是Pentaho的一个bug。目前正在与Pentaho协商解决)
- 打开浏览器,并输入URL:http://localhost:8080, 应该会看到下面的页面
- 然后点击“演示程序集合”
- 找到多维分析例子, 然后点击它
然后继续点击
7. 你现在可以看到Jpivot应用程序,它将允许你在一个web浏览器上浏览和创建OLAP报表
8. (可选步骤) 如果你有时间,你可以任意探索Jpivot图形界面, 一个不错的探索点是CUBE NAVIGATOR()。它将提供一个非常好的图形方式来浏OLAP cubes: 在上面作一些修改,然后点击OK ,这将使得下面的报表发生变化(译者注:这里把Positons指标过滤掉了)。变化后的报表
- 点击MDX以便打开MDX编辑器窗口
10. 粘贴下列MDX 到MDX编辑器里面,然后点击APPLY:
select NON EMPTY {[Measures].[Actual]} ON COLUMNS,
NON EMPTY Hierarchize(Union({[Positions].[All Positions]}, [Positions].[All Positions].Children)) ON ROWS
from [Quadrant Analysis]
你将看到像下面这样的报表:
- 我们这看到的是根据position(职位)汇总的所有员工的实际费用 (即, 薪水费用) 表。对于善于计算的人来说,这个汇总图是不错的。但分析人员和管理者的兴趣是"它在我的整个企业里所占的比例?" 换句话来说, 花费¥1,211,073.00在HR Training比不上我花在HR Training上所占的百分比%那么重要。让我们在前面的MDX语句前添加下列的计算member:
with member [Measures].[Position Percent of Total] as ‘([Measures].[Actual] / ([Measures].[Actual], [Positions].CurrentMember.Parent))’, format_string = "|#.00%|"点击 APPLY ,然后关闭 MDX编辑器 (点击红色的X或者MDX 按钮).
我们下面要做的是使用MDX创建一个计算指标. MDX非常强大,所以我建议你们看看一些 MDX书籍或文档资料,以便充分探索它的能力。
- 现在我们要添加一个全新的计算指标到报表上。点击cube navigator, 然后点击"Measures" ,再点中 我们刚创建的指标:
你将需要点击两次OK才能回到报表视图.
- 如果一切正常, 你将会看到下列带有你自定义MDX指标的报表:
很好, 对于技术人员和影编码的业务分析人员来说这太容易了, 但我们永远不会想让我们的最终用户自己去配置所有这些东西,对最终用户来说,这些都太困难了。我们怎么能够让最终的用户缓冲这些复杂性呢?这将在下一篇文章里介绍如何在Mondrian配置一个计算member.
下面是一个基于我们上面的百分比的饼图: