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

Pentaho与mondrain笔记(二)

 
阅读更多

2.5 BISERVERCache管理

从我目前了解的情况看来,部分cachepentahosession相关,即用户一次会话所用的缓存与一个cache相关,这个可以从CacbeManager的类即可发现,CacheManager只实现了IcacheManager并未继承任何类,并且从其中发现HibernateCacheProvider变量即可只利用Hibernateechache来提供cache对象。并且定义变量private Map<String, Cache> regionCache,其中String即为sessionidCache自然为cache变量。

另外,在定义的PentahoCacheSessionListener implements HttpSessionListener,中的sessionDestroyed方法也可以验证cachesession相关,其方法为

public void sessionDestroyed(final HttpSessionEvent event) {

    HttpSession session = event.getSession();

    Object obj = session.getAttribute( PentahoSystem.PENTAHO_SESSION_KEY ); //$NON-NLS-1$

    if (obj != null) {

      IPentahoSession userSession = (IPentahoSession)obj;

      ICacheManager cacheManager = PentahoSystem.getCacheManager( userSession );

      if ( null != cacheManager ) {

        IPentahoSession pentahoSession = (IPentahoSession) obj;

        if(pentahoSession != null) {

          cacheManager.removeRegionCache(pentahoSession.getId()); 

        }       

      }

    }

}

removeRegionCache就不阐述源码了,即为从regionCache中移除以pentahoSession.getId()keycache,关闭与清除cache要调用其cacheclear方法。

2.6 BISERVER之执行引擎

BISERVER数据展示在demo中主要有4中,分别为图表(只显示数据图形),报表、多维分析和仪表盘。首先分析图表,在Pentaho User Console中,点击某个图表解决方案,发现房屋的urlhttp://localhost:8080/pentaho/ChartSamplesDashboard,在web.xml中查找发现其处理终端为ChartSamplesDashboard.jsp,其中调用ChartHelper.doChart( "steel-wheels", "charts", "barchart.xml", parameters, content, userSession, messages, null )显示图形。

其函数定义如下:

public static boolean doChart(final String solutionName, final String actionPath, final String chartName,

      final IParameterProvider parameterProvider, final StringBuffer outputStream, final IPentahoSession userSession,

  final ArrayList messages, ILogger logger)

从以上函数的源码中,能够发现图表的解析过程,首先获得初始化一些参数,如图表宽和高之类的显示属性,然后到pentaho-solutions\solutionName\actionPath文件夹,查询chartName的图表,并且解析它,获得图表类型属性,根据这些属性生成CategoryDatasetChartComponent对象,调用getXmlContent()方法获得图表内容,在getXmlContent方法中利用createChart生成数据集,createChart调用getActionData获得IpentahoResultSet数据集,而在getActionData中则是通过org.pentaho.platform.engine.services.solution.SolutionEngineexecute方法再次解析解决方案,这次是要获得数据,解析barchart_data.xaction文件,其中定义了一系列的action序列,包括数据源类型和查询语句,SolutionEngine进行解析过程产生RuntimeContext对象,其调用executeSequence方法执行barchart_data.xaction解析出来的action序列,将结果保存在ParameterManager对象中,后返回IruntimeContext对象,最终利用其获得IpentahoResultSet对象,再生成报表所需的DataSet

2.7 Pentaho MetaData Editor

Pentaho MetaData Editor将数据源描述三个层次,分别为物理层、抽象业务层和业务层,如下图所示:

 

 

 

其中,Connections下的为物理层,Bussiness Models为业务层,它又分为Bussiness TablesBussiness View即上面提到的抽象业务层和业务层,其中的Relationships表示其中的业务表的关联关系。

下图为物理表的数据描述:



 

 

物理表的描述比较简单,其中一些描述含义和用处我也没理解。

下图为物理表列的描述:



 

其中增加了更加详细的列描述,如聚合类型,计算的语法等等。

下图为抽象业务层表描述属性:



  

它比物理层的表多了Metadata Security描述,因此它可以定义该模型表能够某用户对其的操作,具体设置过程如下图:



 

默认是无权限设置的。

下图为抽象业务层表列描述,如下图:



 

列都包含了安全信息,同时具有物理层的所有描述。

下图为业务层表描述:



 

很简单啊。

下面看看其列描述,如下图:

 

 

与抽象层是相同。

上面介绍了它们各个层的表和列的描述都包含哪些,它们是如何存储的,导出后发现生成的以xmi结尾的文件,开头的部分内容如下:



 

从上面的命名空间可以看出,其遵循的为XMI规范,XMI(XML-based Metadata Interchange) 使用扩展标记语言(XML),为程序员和其它用户提供元数据信息交换的标准方法。XMI的目的在于帮助使用统一建模语言(UML)以及不同语言和开发工具的程序员彼此交换数据模型。XMI也可用于交换数据仓库信息。XMI格式有效地标准化了任意元数据集的描述,它要求用户跨越多个工业和操作环境而使用同一种方式读取数据。 

Pentaho Metadata editor形成的xmi文件有什么用处呢,我只在report designer发现其用户,可以作为数据源使用,如下图:



 

可以选择生成的xmi文件,然后选择表和列即可了。

2.8 Pentaho之数据查询接口与实现

Pentaho自己设计了查询接口,所有的数据查询(在图表、报表及多维分析中)均返回自己查询的接口对象,主要的接口为IpentahoResultSetIpentahoMetaDataIpentahoConnection

首先分析下IpentahoConnection的属性和结构,public interface IpentahoConnection,如下图:



 

pentaho中有其4个实现类,分别为SQLConnectionMDXConnectionXQConnection(XML数据连接)HQLConnection

SQLConnection中,自然利用sql的连接实现,其属性和构造函数如下图:



 

其中的nativeConnection : Connection变量即为sql的数据库连接,我们还注意到其中的ResultSet变量为IpentahoResultSet类型。其构造函数分别传入驱动类型、数据库连用户名及密码等,然后调用init函数初始化连接。

MDXConnectionMondrain的连接,其属性和构造函数大致如下图:



 

nativeConnectionmondrian.olap.Connection类型,在构造函数中进行初始化连接。

剩下的xml连接中依靠生成的net.sf.saxon.Configuration查询,而在hibernate查询中则保存了org.hibernate.cfg.Configuration做为根本。

然后再分析下IpentahoResultSetIpentahoMetaData,由于不同类型的查询均有自己的ResultSetMetadatadio对象,于是它们都需要在executeQuery中进行转换,如在SqlConnection中的查询方法返回SQLResultSet对象,其构造函数为

public SQLResultSet(final ResultSet nativeResultSet, final SQLConnection nativeConnection)

MDX则同样,Metadata与其原理是相同的,进行了封装,其SQLResultSet的获得metadata方法如下:

  public IPentahoMetaData getMetaData() {

    if (metadata == null) {

      try {

        metadata = new SQLMetaData(nativeResultSet.getMetaData());

      } catch (SQLException e) {

        // log.error(null, e);

        throw new RuntimeException(e);

      }

    }

    return metadata;

  }

从而可以发现IpentahoResultSetIpentahoMetaDataIpentahoConnection与不同的数据源实现均利用其本地实现进行了封装而成,因此我们只需要关注这些接口定义了哪些方法即可。IpentahoConnection已经进行了说明,下图为IpentahoResultSet接口:



 

没有定义任何变量。下图为IpentahoMetaData接口定义:



 

看起来sql的简单,但是注意其getColumnHeaders对象,实现起来可能复杂了。

getRowHeaders很少见,哪里采用rowHeaders呢,首先想到了mondrain的查询结果,也会有行头的。

  • 大小: 40.4 KB
  • 大小: 13.1 KB
  • 大小: 20.4 KB
  • 大小: 15.7 KB
  • 大小: 12.5 KB
  • 大小: 24.9 KB
  • 大小: 5 KB
  • 大小: 24.2 KB
  • 大小: 17.9 KB
  • 大小: 23.8 KB
  • 大小: 62.9 KB
  • 大小: 43 KB
  • 大小: 43.9 KB
  • 大小: 24.6 KB
  • 大小: 19.9 KB
0
1
分享到:
评论

相关推荐

    pentaho学习笔记

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

    pentaho 二次开发修改PUC登录后的页面

    Pentaho是开源的企业级商业智能(BI)平台,它提供了数据集成、报表、分析和仪表板等一系列工具,帮助企业实现数据的深度挖掘与分析。在进行二次开发时,开发者经常需要根据自身需求定制Pentaho User Console(PUC)...

    pentaho-kettle-8.2.zip

    3. **工作流与转换**:在Pentaho Kettle中,工作流(Job)和转换(Transformation)是两个核心概念。工作流负责控制整个流程的执行顺序,而转换则专注于单个数据处理任务。工作流可以包含多个转换,并根据特定条件或...

    pentaho kettle中文开发手册

    《015.pdf》的标题不明确,但根据上下文,它可能包含了Pentaho Kettle的某个特定主题或进阶教程,比如性能优化、大数据处理、或是与其他Pentaho产品(如Pentaho Business Analytics)的集成。 《Pentaho_Technical_...

    Pentaho Solutions (PDF)

    #### 二、Pentaho与MySQL结合的优势 在商业智能领域,Pentaho与MySQL的结合能够为企业提供强大的数据处理和分析能力。MySQL作为一款流行的关系型数据库管理系统,以其高性能、高可靠性及低成本而受到广泛欢迎。当...

    pentaho经典中文资料

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

    Pentaho cde整合Birt

    【标题】:“Pentaho CDE 整合 Birt” 【描述】: ...通过以上介绍,我们可以看出Pentaho CDE与Birt的整合,是将强大的报表设计能力与交互式仪表板相结合,为企业级数据分析和决策支持提供了强大工具。

    Pentaho源码分析

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

    在Linux上安装pentaho bi-server

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

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

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

    Pentaho Solutions

    ### 二、Pentaho的主要功能与特点 #### 1. **数据集成(ETL)** Pentaho提供了强大的数据集成工具,通常被称为ETL(Extract, Transform, Load)。这些工具可以帮助用户从各种数据源提取数据,对数据进行清洗、转换...

    Pentaho Data Integration(Kettle9.0.0.2)&Pentaho Data Reporting

    Pentaho Data Integration(原Kettle)和 Data Reporting工具最新版9.0.0.2.530百度云下载地址 ETL工具及报表展示工具

    Pentaho Solutions BI DW MySQL

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

    pentaho-aggdesigner-algorithm-5.1.5-jhyde-API文档-中文版.zip

    赠送jar包:pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar; 赠送原API文档:pentaho-aggdesigner-algorithm-5.1.5-jhyde-javadoc.jar; 赠送源代码:pentaho-aggdesigner-algorithm-5.1.5-jhyde-sources.jar; ...

    pentaho kettle PDI 9.2下载- 第二部分

    pentaho kettle PDI 9.2下载

    pentaho business analytics cookbook

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

    Pentaho Reporting(2014)

    具体到"7839OS Code Bundle"这个文件,它可能是该版本的源代码包,包含了Pentaho Reporting的源代码和其他相关资源,对于开发者来说,这是一个深入理解软件工作原理和进行二次开发的重要资源。 总的来说,Pentaho ...

Global site tag (gtag.js) - Google Analytics