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),它是全面的机器学习和数据挖掘的工具集,提供了分类、回归、关联规则和聚类等一整套预测分析算法。
还有一些其他的公共组件,如数据访问、图表、仪表盘等。
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路径。
从tomcat下pentaho项目中web.xml中分析出来项目的启动过程,其中首先
<context-param>
<param-name>solution-path</param-name>
<param-value></param-value>
</context-param>
定义了solution-path的存储路径,自然如果不设置就会有个默认的路径。默认路径需要到源码中才能看到了。在PentahoHttpSessionHelper的getSolutionPath方法中得知,solution-path的路径首先为web.xml中的配置,其次是其中定义的DEFAULT_LOCATIONS,最后在本项目中查找solution-path文件夹。
在PentahoSolutionSpringApplicationContext中定义的getResourceByPath提供了获得solution-path下资源的方法,此方法获得是system文件夹下的,就是在初始化系统时需要用的文件夹。
然后,初始化Java对象,所需要初始化的Bean存储在solution-path的system文件夹下某个xml文件中,即下面配置中的xml文件。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>pentaho-spring-beans.xml</param-value>
</context-param>
WebSpringPentahoObjectFactory的init方法中利用Spring框架的WebApplicationContextUtils初始化Bean,同时保存ApplicationContext类的beanFactory对象用于以后获取Bean对象。
在pentaho-spring-beans.xml中包含的数据源的配置和所有所需初始化类的配置。
剩下的一些启动过程就常见的字符集设置、springSecurity设置和pentaho所用的servlet设置。其中关键
2.4 BISERVER之SESSION管理
Pentaho的biserver对标准的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));
}
该方法主要完成对pentaho的session封装,并且保存在本地线程变量中,主要用到俩个方法。
在PentahoHttpSessionHelper.getPentahoSession(request)中,首先利用request.getSession()获得标准的session,然后session.getAttribute(IPentahoSession.PENTAHO_SESSION_KEY)获得IpentahoSession,自然首次请求即头次标红的地方这个IpentahoSession为null,于是新建PentahoHttpSession,并设置入标准的session中。
PentahoHttpSession依然利用标准的HttpSession进行getAttribute和setAttribute,他主要绑定个sessionParameters,里面包含pentaho常用的变量。
而PentahoSessionHolder.setSession主要将此pentahoSession存入ThreadLocal对象,于是在本次请求任何函数处理过程中,都可以随时获得本session,从而减少了参数传递的复杂性。
由于Tomcat的线程池机制,一个线程在一次请求后可能被不同的session请求,于是需要在request销毁时将此pentahoSession移出线程本地变量。
public void requestDestroyed(ServletRequestEvent sre) {
PentahoSessionHolder.removeSession();
}
该方法就是将pentaho的session移除本地线程变量中。
这就是Pentaho的Sesssion管理机制。
相关推荐
以下是对 Pentaho 学习笔记的详细解析: **一、Pentaho 整体架构** Pentaho 包含多个组件,它们协同工作以提供完整的BI解决方案: 1. **Pentaho Data Integration (Kettle)**:Kettle 是 Pentaho 的数据提取、转换...
Pentaho 是一个开放源码的商业智能平台,提供了一个完整的商业智能解决方案,包括数据integration、报表生成、数据分析和数据 mining 等功能。下面是 Pentaho 的技术白皮书的详细知识点: 1. 摘要 Pentaho 是一个...
Pentaho Kettle是一款强大的数据集成工具,也被称为Kettle或Pentaho Data Integration(PDI)。它是开源软件,由Pentaho公司开发,主要用于ETL(Extract, Transform, Load)过程,即数据抽取、转换和加载。这个中文...
Pentaho与MySQL的结合为现代企业的商业智能和数据仓库建设提供了一种高效、灵活且经济实惠的解决方案。无论是对于中小型企业还是大型跨国公司,这一组合都能够帮助企业更好地理解其业务数据,从而做出更加明智的决策...
Pentaho Kettle是一款强大的ETL(提取、转换、加载)工具,由Pentaho公司开发。这个名为“pentaho-kettle-8.2.zip”的压缩包文件包含了Pentaho Data Integration(Kettle)的第8.2版本。Pentaho Kettle通过图形化的...
1. **Pentaho CDE**:CDE是Pentaho Data Integration (Kettle) 平台的一部分,它提供了一个基于Ajax的用户界面,用于创建动态的、交互式的BI仪表板。CDE支持多种数据源,包括SQL查询、MDX查询、Excel文件、Web服务等...
根据提供的文件信息,我们可以推断出这是一本关于如何利用Pentaho与MySQL进行商业智能(Business Intelligence,简称BI)及数据仓库(Data Warehousing,简称DW)建设的专业书籍。以下将对该书涉及的主要知识点进行...
Pentaho是一款开源的企业级商业智能(BI)平台,它提供了数据集成、数据分析和报表等多种功能。这个压缩包中包含的是一系列经典的中文资料,涵盖了Pentaho的不同方面,旨在帮助用户深入理解和使用Pentaho。 1. **...
Pentaho与MySQL的结合可以为企业提供一个高性能、低成本的数据处理解决方案。具体来说: #### 1. **数据存储** MySQL提供了可靠的数据存储能力,可以高效地存储大量结构化数据。这对于数据仓库来说是基础也是关键。...
5. 工作流(Pentaho Workflow):允许用户通过图形化的方式创建复杂的数据处理流程,并且可以与外部系统集成。 在本书中,读者将了解到以下知识点: - 如何安装和配置Pentaho的各个组件。 - 如何创建和管理数据源...
1. **界面层**:包括Web客户端和富客户端应用,如Pentaho Analyzer和Pentaho Report Designer,它们与服务器端通信,展示数据和分析结果。 2. **核心层**:包含数据访问、处理和转换的核心组件,如PDI(用于数据集成...
### 在Linux上安装Pentaho BI Server的知识点详解 #### 一、配置JAVA环境 ...遵循这些步骤可以帮助用户顺利完成Pentaho BI Server的部署和配置,从而更好地利用该工具进行数据分析与报表制作等工作。
- `create_quartz_ora.sql`:Quartz是Pentaho BI中的一个任务调度框架,这个脚本可能用于创建与Quartz相关的表和触发器,以实现定时任务和工作流自动化。 - `create_repository_ora.sql`:此脚本可能是用来创建...
- **XMLA 服务**:XML for Analysis (XMLA) 是一种用于与 OLAP 引擎通信的标准协议。 - 配置 XMLA 服务可以确保 Pentaho 能够通过标准方式与 OLAP 引擎交互。 **3.2 配置 Pentaho Publisher 服务** - **Publisher...
在本文中,我们将深入探讨如何创建Pentaho解决方案,这是一个强大的商业智能(BI)平台,它提供了数据集成、分析和报告等关键功能。Pentaho以其用户友好的界面和可扩展性而闻名,使得企业能够构建定制化的BI解决方案...
Pentaho Kettle 8.3 是一款强大的数据集成工具,也被称为 Spoon,是 Pentaho Data Integration(PDI)的一部分。PDI 是一个开源的企业级 ETL(Extract, Transform, Load)解决方案,允许用户通过图形化界面设计、...