Mondrian+JPivot流程简介(转) 博客分类: mondrian mondrian
JPivot+Mondrian 典型的开发流程及模式:
1 数据库结构定义成 Schema
schema 元模型包括维度( Dimensions )、层次( Hierarchies )、级别( Levels )、和成员( Members )等。 Mondrian 要根据它来从关系数据库中聚合数据响应 MDX 语法的查询。可以说 Schema 文件是 Jpivot+Mondrian 架构应用中最核心,最关键的文件。 PAS JPivot+Mondrian Demo 的 /WebRoot/Web-Inf/pasmondrian.xml 文件就是基于 XML 的,用于映射 OLAP 的数据库结构,以供 Mondrian 服务器响应 MDX 语句查询的 Schema 元模型文件。 Schema 元模型的定义文件较复杂。幸运的是有开源工具 CubeDesigner 可以帮我们生成该文件,虽然该工具刚推出不久,并不成熟、稳定,还有许多 BUG 存在,但它至少可以生成一个大致的文件框架,可以大大减轻工作量。
基于 XML 的 Schema 元模型定义文件的主要元素及其相关属性,可参考 Mondrian 文档。
2 编写 MDX 查询语句
在 Demo 的 /WebRoot/Web-Inf/queries/pasmondrian.jsp 文件中,使用 JPivot 的 <jp:mondrianQuery> 标签定义一个 MDX 查询语句,代码如下:
< jp:mondrianQuery id = "query01" jdbcDriver = "sun.jdbc.odbc.JdbcOdbcDriver"
jdbcUrl = "jdbc:odbc:jmpas"
jdbcUser = "sa"
jdbcPassword = "sa"
catalogUri = "/WEB-INF/pasmondrian.xml" >
select {[Measures].[zbz]} ON COLUMNS,{([jgmc].[All jgmc],[zbmc].[All zbmc])} ON ROWS from pas
where [tjrq.tjrq].[All tjrq]
</ jp:mondrianQuery >
<jp:mondrianQuery> 标签及其属性,可参考 JPivot 文档。
3 编写 OLAP 展现页面
在 Demo 的 /WebRoot/pasmondrian.jsp 利用 JPivot 及 WCF 一系列 JSP 标签展现 Mondrian 服务器返回的 OLAP 数据集。
具体代码参见 DEMO 相关文件; JPivot 及 WCF 标签用法参考相关文档。
4 程序典型流程
1 、用户发出 pasmodrian.jsp?query= pasmodrian 的请求
2
,
pasmodrian.jsp
上的<
wcf:include
>根据
query
参数,匹配
/WEB-INF/query/
下的
pasmodrian.jsp
来获取数据
3
,
pasmodrian.jsp
上的<
jp:mondrianQuery id="query01"
>查询数据,放入到
query01
变量中
4
,
pasmodrian.jsp
上的<
jp:table id="table01" query="#{query01}"/
>根据
query01
的结果(领域数据)准备显示
OLAP
表格所需的数据(显示数据)
5
,
pasmodrian.jsp
上的<
wcf:render ref="table01" xslUri="/WEB-INF/jpivot/table/mdxtable.xsl"/
>根据
table01
的结果,使用
xsl
,渲染出
OLAP
表格。
6
,循环第
4
,
5
步,使用<
jp:navigator
>等
tag
准备
navigator,chart
的数据然后用<
wcf
>渲染出图表和导航系统
.
整个流程,第
2
步的
pasmodrian
充当
Controller
调用第
3
步的
Model
层,然后第
4
,
5
步执行从领域数据
(
比如一些
java bean)
中转换出格式整齐的,需要显示的数据
(
比如一段
xml)
,再用
xsl
将其渲染为最终的表现形式。