Mondrian的web应用.ppt
《Mondrian的web应用.ppt》由会员分享,可在线阅读,更多相关《Mondrian的web应用.ppt(57页珍藏版)》请在三一办公上搜索。
1、Mondrian使用教程,通过本教程,您将了解到什么是Mondiran,及如何将mondrian支持添加到您的Java Web项目中。在阅读本教程之前,您可能需要掌握以下概念:OLAP(联机分析处理On-Line Analytical Processing),您可以通过阅读ROLAP的概念.pptx来了解OLAPMDX多维表达式,您可以通过阅读MDX的基本语法及概念.pptx来了解MDX,1.Mondrian是什么?,Mondrian是一个开源项目。一个用Java写成的OLAP引擎。它用MDX语言实现查询,从关系数据库(RDBMS)中读取数据。然后经过Java API以多维的方式对结果进行展示
2、。Mondrian的使用方式同JDBC驱动类似。可以非常方便的与现有的Web项目集成,1.1 Mondrian的体系结构(Architecture),Mondrian OLAP 系统由四个层组成;从最终用户到数据中心,顺序为:1.1.1 表现层(the presentation layer)1.1.2 维度层(the dimensional layer)1.1.3 集合层(the star layer)1.1.4 存储层(the storage layer)结构图如下:,模式管理器,Mondrian的模式文件,它定义了关系数据到多维数据的映射。需要我们生成,表现层,多维层,集合层,存储层,1.
3、1.1 表现层(the presentation layer),表现层决定了最终用户将在他们的显示器上看到什么,及他们如何同系统产生交互。有许多方法可以用来向用户显示多维数据集,有 pivot 表(一种交互式的表),pie,line 和图表(bar charts)。它们可以用Swing 或 JSP来实现。表现层以多维文法(grammar)(维、度量、单元)”的形式发出查询,然后OLAP服务器返回结果。,下面我们将对mondrian在 java web端使用的jpivot表现层进行简单介绍,1.1.1.1 Jpivot表现层,JPivot是Mondrian的表现层TagLib,一直保持着良好的开
4、发进度。您可以通过访问jpivot的官方网站以获得更多的帮助及支持,jpivot使用XML/XSLT渲染OLAP报表:,JPivot使用 WCF(Web Component Framework),基于XML/XSLT来渲染Web UI组件。这使它显得十分另类。不过,OLAP报表这种非常复杂但又有规律可循的东西,最适合使用XSLT来渲染。,jpivot完全基于JSP+TagLib:,JPivot另外一个可能使人不惯的地方是它完全基于taglib而不是大家熟悉的MVC模式。但它可以很方便的将多维数据展示给最终用户,如下表格:,jpivot其实是一个自定义jsp的标签库。它基于XML/XSLT配置来
5、生成相应的html。所幸的是,我们并不需要了解太多关于这方面的内容,我们只要掌握相应jsp标签的使用即可。在本教程的实例中,我们将会对一些常用到的jpivot标签进行讲解。您还可以通过汉化WEB-INF/jpivot下的xml文件来完成对jpivot的汉化工作,1.1.2 维度层(the dimensional layer),维度层用来解析、验证和执行MDX查询要求。一个MDX查询要通过几个阶段来完成:首先是计算坐标轴(axes),再者计算坐标轴axes 中cell的值。为了提高效率,维度层把要求查询的单元成批发送到集合层,查询转换器接受操作现有查询的请求,而不是对每个请求都建立一个MDX 声
6、明。,集合层负责维护和创建集合缓存,一个集合是在内存中缓存一组单元值,这些单元值由一组维的值来确定。维度层对这些单元发出查询请求,如果所查询的单元值不在缓存中,则集合管理器(aggregation manager)会向存储层发出查询请求,1.1.3 集合层(the star layer),1.1.4 存储层(the storage layer),存储层是一个关系型数据库(RDBMS)。它负责创建集合的单元数据,和提供维表的成员。,1.2 API,Mondrian 为客户端提供一个用于查询的API因为到目前为止,并没有一个通用的用于OLAP查询的API,因此Mondrian提供了它私有的API.
7、尽管如此,一个常使用JDBC的人将同样发现它很熟悉.不同之处仅在于它使用的是MDX查询语言,而非SQL,下面的java片段展示了如何连接到Mondrian,然后执行一个查询,最后打印结果.import mondrian.olap.*;import java.io.PrintWriter;Connection connection=DriverManager.getConnection(Provider=mondrian;+Jdbc=jdbc:odbc:MondrianFoodMart;+Catalog=/WEB-INF/FoodMart.xml;,null,false);Query query
8、=connection.parseQuery(SELECT Measures.Unit Sales,Measures.Store Sales on columns,+Product.children on rows+FROM Sales+WHERE(Time.1997.Q1,Store.CA.San Francisco);Result result=connection.execute(query);result.print(new PrintWriter(System.out);,与JDBC类似,一个Connection由DriverManager创建,Query 对象类似于JDBC 的St
9、atement,它通过传递一个MDX语句来创建.Result对象类似于JDBC的ResultSet,只不过它里面保存的是多维数据您可以通过查看Mondrian帮助文档里的javadoc来获取更多关于Mondrian API的资料,通过上面的介绍,您应该对mondrian的体系有一个基本的了解。下面我们将通过一个简单的例子来加深您的理解。,2.一个简单的Mondrian例子,现在让我们用一个简单的例子来说明将Mondrian支持添加到您java web的具体步骤。,2.1 准备开发工具及环境,本测试需要的环境:操作系统:Windows 2000;Web服务器:tomcat6.0;关系数据库:sq
10、l server 2000;开发工具:eclipse+myeclipse;JDBC驱动:jtds-1.2.2;您可以在上下载到tomcat的最新版本及帮助;您可以在上下载到myeclipse的最新版本及相应的eclipse开发平台版本,2.2 准备Mondrian资源:,从http:/,点击此处下载,2.3 创建项目,启动eclipse。在eclipse中新创建一个web项目,名为Tezz。注意需要加入JSTL支持。具体步骤如下:,点击此处新打开建web项目对话框,2.3.1 打开新建web项目对话框,1.输入项目名称Tezz,2.在这里打勾以加入JSTL支持,3.选择JSTL1.1,4.单击
11、此处完成创建,一个新项目Tezz的文件结构如下:,项目名称,Web根目录,2.4 添加必须的文件,将下载的压缩包进行解压。完成后,进入文件夹可以看到如下目录结构。双击进入lib文件夹。,进入此文件夹,Lib文件夹有如下内容:注意到这里的mondrian.war文件是一个可直接布署的项目,我们需要将它解压,然后从中取出我们所需要的文件。(建议将其扩展名改成zip,然后直接右键解压),我们需要的文件在这个项目文件中,进入解压后的文件夹,选中jpivot、wcf二个文件夹及busy.jsp、error.jsp、testpage.jsp三个文件,我们需要将这些资源复制到我们测试项目的WebRoot文件
12、夹中。按ctrl+C键复制。,注:jpivot、wcf这两个文件夹包含mondrian使用的图像和css文件。Busy.jsp显示等待页面、error.jsp显示出错页面、testpage.jsp这文件的用处将在后面介绍。,切换到eclipse界面,在我们的Tezz项目的WebRoot文件夹处右击鼠标,在弹出的菜单中选择Paste(粘贴)即可,粘贴完成后的项目结构如下,注意:因为我们还未将所有资料复制到项目中,因此eclipse会显示错误图标,包含jpivot所用到的图像及css样式,包含wcf所用到的图像及css样式,调用jpivot标签来处理MDX查询请求,并将最终结果以html的格式返回
13、给用户,最后进入WEB-INF文件夹(在上面步骤中解压的项目文件mondrian.war里),选中jpivot、lib、wcf这三个文件夹,同样需要复制它们到测试项目的WEB-INF文件夹中。,Jpivot、wcf这两个文件夹包含jpivot和wcf用于生成用户界面的配置文件(*.xml、*.xsl)及标签文件(*.tld)的定义。Lib文件夹包含的是mondrian所要用的java包。,切换到eclipse界面,在我们的Tezz项目的WebRoot文件夹处右击鼠标,在弹出的菜单中选择Paste(粘贴),至此Mondrian的支持添加完毕,下面我们将配置web.xml,让我们的项目能够使用到m
14、ondrian的功能。,包含jpivot和wcf用于生成用户界面的配置文件(*.xml)及标签文件(*.tld)的定义,2.5 配置web.xml,用eclipse打开我们在上面解压的布署项目的WEB-INF/web.xml文件,我们需要从该web.xml文件中抽取出所需要的配置。,过滤器(filter)复制右图中所示的xml代码到我们测试项目Tezz的web.xml文件中。作用:这个过滤器在访问/testpage.jsp前被调用。它被设计成jpivot的前端控制器,用于判断并将用户的请求发送到某个页面。注:在实际项目中可以使用您自己定义的servlet或使用其他技术来替代它以提供更多的功能,
15、JPivotController com.tonbeller.wcf.controller.RequestFilter indexJSP/index.html 如果这是一个新的会话,则转到此页面 errorJSP/error.jsp 出错时显示的页面 busyJSP/busy.jsp 这个页面用于当用户点击一个查询时,在这个查询还未将结果还回给用户时所显示的界面 JPivotController/testpage.jsp,复制下面的listener到我们的web.xml文件中(用于初始化一些资源),Print servlet,该servlet用于将数据生成Excel文件或pdf文件并返回给用户
16、,如果您需要用到该功能,则需要将其copy到您项目的web.xml文件中,mondrian.web.taglib.Listener com.tonbeller.tbutils.res.ResourcesFactoryContextListener,Print Print Default configuration created for .tonbeller.jpivot.print.PrintServlet Print/Print,MDXQueryServlet mondrian.web.servlet.MDXQueryServlet connectString mondrian.webap
17、p.connectString MDXQueryServlet/mdxquery,MDXQueryServlet用于接受并执行一个MDX查询,然后将该查询以Html表格的形式返回。其中的参数connectString用于指定连接到数据库的字符串,例如使用jtds驱动连接到sql server 2000的字符串如下:Provider=mondrian;Jdbc=jdbc:jtds:sqlserver:/localhost/Tezz;user=sa;password=123456;Catalog=/WEB-INF/queries/tezz.xml;JdbcDrivers=net.sourcefor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mondrian web 应用

链接地址:https://www.31ppt.com/p-6512663.html