`
charyle
  • 浏览: 166094 次
  • 性别: Icon_minigender_1
  • 来自: 天蝎座
社区版块
存档分类
最新评论

Pentaho与mondrain笔记(一)

 
阅读更多

前言

    前阵子调研Pentaho BImondrain最为的olap服务器也是调研重点。毕竟Pentaho BI已经做的相当成熟,研究工作在主要从功能和代码结构来分析框架,也涉及到一些源码。下面是一些散乱的点。

Pentaho记要

2.1 Pentaho模块划分

Pentaho是宽开源的BI,主要包含以下一些模块:

1) Kettle(Pentaho Data Integration,PDI),它是款以元数据驱动方式实现的ETL工具,支持拖拽操作和图形显示。

2)  BI Platform(Pentaho BI Platform and Server),它提供BI构架和解决方案所需的基础,该框架提供的核心服务包括身份验证、日志、审核、网络服务和规则引擎。该平台包括了一个集成的解决方案引擎,提供了报表、多维分析、表盘显示和数据挖掘组件。它模块化的设计和插件的构架允许第三方应用嵌入到本系统中来。

3)  Mondrian(Pentaho Analysis Services),它是款在线多维分析的服务,能够实时分析大量的数据。

4)Reporting(Pentaho Reporting),它包括报表设计器和报表引擎,支持多种格式的报表输出。

5)Weka(Pentaho Data Mining),它是全面的机器学习和数据挖掘的工具集,提供了分类、回归、关联规则和聚类等一整套预测分析算法。

还有一些其他的公共组件,如数据访问、图表、仪表盘等。

2.2 BI SERVER之结构

BI SERVER pentaho的核心,它负责将各个模块整合起来。安装后的BI目录结构划分如下:

 

 


 

 

 

    从图中可以看出,biserver的结构包含3个部分:

      data文件夹负责存储数据,这些数据包括它自带的demo数据,更主要的是包含biserver运行所需系统用户等本身权限等的数据。

      pentaho-solutions,这个文件夹包含了BI套件的解决方案,前面节介绍到biserver是提供框架和解析引擎的,而所解析的内容就是这个文件夹下的内容。其中主要是steel-wheels文件夹,包含一些默认的BI解决方案,有报表、olap等例子。System主要存储项目的配置信息,有系统配置信息,如数据库连接等,还有各个模块的配置信息和所需的插件,如下图:



 

        Biserver采用Spring初始化Java 对象并管理,利用hibernate进行系统数据库访问,利用spring security管理系统访问控制权限。

      还有Tomcat文件夹,BiServer整合了Tomcat,看到里面有3个与pentaho有关的项目。sw-style项目还不清楚具体什么作用,pentaho-style是为pentaho提供样式的,而pentaho是真正的运行解决方案的项目。

2.3 BI SERVER之启动

Biserver启动过程主要完成系统设置、Java对象初始化和数据源初始化等操作。系统设置主要设置solution-path的路径,并且数据源连接和需要初始化Java类等都在solution-path路径下以配置文件xml形式存在,因此启动过程首先设置solution-path路径。

tomcatpentaho项目中web.xml中分析出来项目的启动过程,其中首先

    <context-param>

       <param-name>solution-path</param-name>

       <param-value></param-value>

    </context-param>

定义了solution-path的存储路径,自然如果不设置就会有个默认的路径。默认路径需要到源码中才能看到了。在PentahoHttpSessionHelpergetSolutionPath方法中得知,solution-path的路径首先为web.xml中的配置,其次是其中定义的DEFAULT_LOCATIONS,最后在本项目中查找solution-path文件夹。

PentahoSolutionSpringApplicationContext中定义的getResourceByPath提供了获得solution-path下资源的方法,此方法获得是system文件夹下的,就是在初始化系统时需要用的文件夹。

然后,初始化Java对象,所需要初始化的Bean存储在solution-pathsystem文件夹下某个xml文件中,即下面配置中的xml文件。

    <context-param>

      <param-name>contextConfigLocation</param-name>     

      <param-value>pentaho-spring-beans.xml</param-value>

    </context-param>

WebSpringPentahoObjectFactoryinit方法中利用Spring框架的WebApplicationContextUtils初始化Bean,同时保存ApplicationContext类的beanFactory对象用于以后获取Bean对象。

pentaho-spring-beans.xml中包含的数据源的配置和所有所需初始化类的配置。

剩下的一些启动过程就常见的字符集设置、springSecurity设置和pentaho所用的servlet设置。其中关键

2.4 BISERVERSESSION管理

       Pentahobiserver对标准的httpSession进行了封装。利用RequestListener进行设置和封装session。其requestInitialized方法如下:

public void requestInitialized(ServletRequestEvent sre) {

    if (!(sre.getServletRequest() instanceof HttpServletRequest)) {

      return;

    }   

    HttpServletRequest request = (HttpServletRequest)sre.getServletRequest();

    IPentahoSession session = PentahoHttpSessionHelper.getPentahoSession(request);   

    if(logger.isTraceEnabled()) {

      logger.trace("binding session "+session+" to request "+sre.getServletRequest());

    }        PentahoSessionHolder.setSession(PentahoHttpSessionHelper.getPentahoSession(request));

  }

该方法主要完成对pentahosession封装,并且保存在本地线程变量中,主要用到俩个方法。

PentahoHttpSessionHelper.getPentahoSession(request)中,首先利用request.getSession()获得标准的session,然后session.getAttribute(IPentahoSession.PENTAHO_SESSION_KEY)获得IpentahoSession,自然首次请求即头次标红的地方这个IpentahoSessionnull,于是新建PentahoHttpSession,并设置入标准的session中。

PentahoHttpSession依然利用标准的HttpSession进行getAttributesetAttribute,他主要绑定个sessionParameters,里面包含pentaho常用的变量。

PentahoSessionHolder.setSession主要将此pentahoSession存入ThreadLocal对象,于是在本次请求任何函数处理过程中,都可以随时获得本session,从而减少了参数传递的复杂性。

由于Tomcat的线程池机制,一个线程在一次请求后可能被不同的session请求,于是需要在request销毁时将此pentahoSession移出线程本地变量。

 public void requestDestroyed(ServletRequestEvent sre) {    

    PentahoSessionHolder.removeSession();

 }

该方法就是将pentahosession移除本地线程变量中。

这就是PentahoSesssion管理机制。

 

  • 大小: 23.3 KB
  • 大小: 75.5 KB
0
1
分享到:
评论

相关推荐

    pentaho学习笔记

    以下是对 Pentaho 学习笔记的详细解析: **一、Pentaho 整体架构** Pentaho 包含多个组件,它们协同工作以提供完整的BI解决方案: 1. **Pentaho Data Integration (Kettle)**:Kettle 是 Pentaho 的数据提取、转换...

    Pentaho-开放源码的商业智能平台-技术白皮书.pdf

    Pentaho 是一个开放源码的商业智能平台,提供了一个完整的商业智能解决方案,包括数据integration、报表生成、数据分析和数据 mining 等功能。下面是 Pentaho 的技术白皮书的详细知识点: 1. 摘要 Pentaho 是一个...

    pentaho kettle中文开发手册

    Pentaho Kettle是一款强大的数据集成工具,也被称为Kettle或Pentaho Data Integration(PDI)。它是开源软件,由Pentaho公司开发,主要用于ETL(Extract, Transform, Load)过程,即数据抽取、转换和加载。这个中文...

    Pentaho Solutions (PDF)

    Pentaho与MySQL的结合为现代企业的商业智能和数据仓库建设提供了一种高效、灵活且经济实惠的解决方案。无论是对于中小型企业还是大型跨国公司,这一组合都能够帮助企业更好地理解其业务数据,从而做出更加明智的决策...

    pentaho-kettle-8.2.zip

    Pentaho Kettle是一款强大的ETL(提取、转换、加载)工具,由Pentaho公司开发。这个名为“pentaho-kettle-8.2.zip”的压缩包文件包含了Pentaho Data Integration(Kettle)的第8.2版本。Pentaho Kettle通过图形化的...

    Pentaho cde整合Birt

    1. **Pentaho CDE**:CDE是Pentaho Data Integration (Kettle) 平台的一部分,它提供了一个基于Ajax的用户界面,用于创建动态的、交互式的BI仪表板。CDE支持多种数据源,包括SQL查询、MDX查询、Excel文件、Web服务等...

    Pentaho Solutions BI DW MySQL

    根据提供的文件信息,我们可以推断出这是一本关于如何利用Pentaho与MySQL进行商业智能(Business Intelligence,简称BI)及数据仓库(Data Warehousing,简称DW)建设的专业书籍。以下将对该书涉及的主要知识点进行...

    pentaho经典中文资料

    Pentaho是一款开源的企业级商业智能(BI)平台,它提供了数据集成、数据分析和报表等多种功能。这个压缩包中包含的是一系列经典的中文资料,涵盖了Pentaho的不同方面,旨在帮助用户深入理解和使用Pentaho。 1. **...

    Pentaho Solutions

    Pentaho与MySQL的结合可以为企业提供一个高性能、低成本的数据处理解决方案。具体来说: #### 1. **数据存储** MySQL提供了可靠的数据存储能力,可以高效地存储大量结构化数据。这对于数据仓库来说是基础也是关键。...

    pentaho business analytics cookbook

    5. 工作流(Pentaho Workflow):允许用户通过图形化的方式创建复杂的数据处理流程,并且可以与外部系统集成。 在本书中,读者将了解到以下知识点: - 如何安装和配置Pentaho的各个组件。 - 如何创建和管理数据源...

    Pentaho源码分析

    1. **界面层**:包括Web客户端和富客户端应用,如Pentaho Analyzer和Pentaho Report Designer,它们与服务器端通信,展示数据和分析结果。 2. **核心层**:包含数据访问、处理和转换的核心组件,如PDI(用于数据集成...

    在Linux上安装pentaho bi-server

    ### 在Linux上安装Pentaho BI Server的知识点详解 #### 一、配置JAVA环境 ...遵循这些步骤可以帮助用户顺利完成Pentaho BI Server的部署和配置,从而更好地利用该工具进行数据分析与报表制作等工作。

    pentaho BI oracle执行脚本

    - `create_quartz_ora.sql`:Quartz是Pentaho BI中的一个任务调度框架,这个脚本可能用于创建与Quartz相关的表和触发器,以实现定时任务和工作流自动化。 - `create_repository_ora.sql`:此脚本可能是用来创建...

    Pentaho_bi_server配置手册

    - **XMLA 服务**:XML for Analysis (XMLA) 是一种用于与 OLAP 引擎通信的标准协议。 - 配置 XMLA 服务可以确保 Pentaho 能够通过标准方式与 OLAP 引擎交互。 **3.2 配置 Pentaho Publisher 服务** - **Publisher...

    创建 Pentaho Solutions 中文

    在本文中,我们将深入探讨如何创建Pentaho解决方案,这是一个强大的商业智能(BI)平台,它提供了数据集成、分析和报告等关键功能。Pentaho以其用户友好的界面和可扩展性而闻名,使得企业能够构建定制化的BI解决方案...

    pentaho-kettle-8.3

    Pentaho Kettle 8.3 是一款强大的数据集成工具,也被称为 Spoon,是 Pentaho Data Integration(PDI)的一部分。PDI 是一个开源的企业级 ETL(Extract, Transform, Load)解决方案,允许用户通过图形化界面设计、...

Global site tag (gtag.js) - Google Analytics