PRD概述

一、       Pentaho 整体架构

 

cc

 

 

 

二、       Client tools

1.        Report Designer

报表创建工具。如果想创建复杂数据驱动的报表,这是合适工具。

2.        Design Studio

这是基于eclipse的工具,你可以使用它来创建手工编辑的报表或分析视图xaction 文件,一般用来对在report designer中无法增加修改的报表进行修改。

3.        Aggregation Designer

帮助改善Mondrian cube 性能的图形化工具。

4.        Metadata Editor

用来添加定制的元数据层到已经存在的数据源。一般不需要,但是它对应业务用户在创建报表时解析数据库比较容易。

5.        Pentaho Data Integration

这是kettle etl工具。

6.        Schema Workbench

帮助你创建rolap的图形化工具。这是为分析准备数据的必须步骤。

 

三、       Pentaho BI suit community editon安装

硬件要求:

RAM: At least 2GB

Hard drive space: At least 1GB

Processor: Dual-core AMD64 or EM64T

软件要求:

  需要JRE 1.5版本,1.4版本已经不再支持。

 

修改默认的端口8080,打开\biserver-ce\tomcat\conf目录下的server.xml文件,修改<connector port=8080为你想要的端口号。同时在这部分可以调整Apache Tomcat参数。在修改了该端口号后,必须同时修改\tomcat\webapps\pentaho\WEB-INF目录下的web.xml文件中的<context-param><param-name>base-url</param-name><param-value>http://localhost:8080/pentaho</param-value></context-param>中的端口号。否则administration-console中不能连接到bi server。

四、       配置数据库连接

如果要是pentaho bi server能连接到关系数据库,需要将相应数据库driver的jar包拷贝到server/biserver-ce/tomcat/common/lib目录。

    为了能在administration console中创建数据库连接并测试,需要将相应的数据库driver的jar包拷贝到server/administration console/jdbc目录。下面是具体关系数据库连接设置说明。

1、连接Oracle数据库。

需要将oracle的driver类class12.jar包拷贝到/Pentaho/server/enterprise-console-server/jdbc/或/biserver-ee/server/enterprise-console-server/jdbc/

/Pentaho/server/bi-server/tomcat/common/lib/或/biserver-ee/server/bi-server/tomcat/common/lib/目录。

执行\Pentaho\Server\administration-console目录下的start-pac.bat启动admin console bi server

 

在Adminstrator console中配置数据库连接:

 在iE中输入http://localhost:8099/后进入管理界面,点左边的administrator,在右边窗口中点database connection进入下面的界面。

在name中输入要创建的数据库连接的名称,在driver class中选择要使用的driver类,user name中输入访问数据库的用户、password中输入相应的密码,在url中输入访问数据库的连接信息:jdbc:oracle:thin:@xzq:1521:oradata。在@之前的是固定信息,@之后分别是服务器名称或IP:端口号:数据库服务名。

2、连接MS Sql server数据库

在iE中输入http://localhost:8099/后进入管理界面,点左边的administrator,在右边窗口中点database connection进入下面的界面。

在name中输入要创建的数据库连接的名称,在driver class中选择要使用的driver类,user name中输入访问数据库的用户、password中输入相应的密码,在url中输入访问数据库的连接信息:jdbc:Microsoft:sqlserver://localhost:41433;DatabaseName=GOSLDW。//前的字符是固定的,//后是数据库服务器名或ip地址:端口号;DatabaseName=数据库名。

五、       Report Designer创建报表

5.1.    创建步骤

第一步:定义数据源,创建dataset

第二步:定义report layout,report layout有一组band构成,包括reportheader、report footer、group header、group footer以及detail构成。

第三步:部署报表到BI server.

5.2.    创建report title

在左边的工具栏上拖一个label报表元素到reportheader band中,双击label报表元素输入你想要的report title,如图5-2。你可以在右边的属性窗口中对该title进行属性定义,包括字体大小、颜色、样式等。

图5-2 创建report title

5.3.    创建column header

在report title下加几个label报表元素,构成你需要的columnheader,如图5.3所示。

图5-3 创建column header

5.4.    创建report detail

报表的Detail本身将产生报表的明细记录,这些记录有dataset提供,因此需要将dataset中的字段拖入report detail band即可,如图5-4。

图5-4 产生reportdetail

5.5.    创建report summary

在 report footer band加上汇总元素的描述标签和相应的汇总计算字段,如图 5-5所示。

这里的关键是需要生产汇总计算字段,图中生成了两个library count 和total library size,要产生这两个汇总字段,需要在右边data页的function中增加function字段,分别利用了count(running)和summary(running)函数

5.6.    画布大小设置

点击菜单file->pagesetup,出现图5.6所示的界面,在该界面中可以设置画布的大小

图5.6

5.7.    创建图表

所有图表都有一个showlabel属性,默认是hidelabel,在这种情况下,图表上不会显示相应的值,图表上能显示的值一般有三种情况,分别是0、1、2(对pie chart有3),分别表示系列的描述、category描述、项值,如果需要组合显示,可以采用{0},{2}这样的格式来表示。

5.7.1.   Bar chart

Bar chart对比较不同类别数据的大小是有用的。

在左边的工具按钮中拖入chart图标到report header,如图5.7.1

图5.7.1

双击该图出现图5.7.2所示的属性窗口

图5.7.2 bar chart属性设置

在左边窗口中设置相关的显示属性,在右边窗口中指定显示的数据字段。这样就完成了图形报表的创建。

技巧:

   Pentaho中的数据集是同报表绑定的,如果想在同一报表中显示多张chart报表,需要利用sub report,在不同的sub report中分别创建报表完成。

5.7.2.   区域图(Area chart)

区域图用于比较两个或多个数据集间的差异是有用的。

5.7.3.   线性图(line chart)

线性图对分析发展趋势是有用的。

注意,堆积和堆积百分比(stackand stack percent)不能用于linechart。

5.7.4.   饼图(pie chart)

饼图一般用来分析不同category占总值的占比分析。

饼图有一个labelformat属性,该属性值有以下几种:

{0}:series name,

{1}::series raw value

{2}: percentage value

{3}: total raw value

5.7.5.   环形图(ring chart)

环形图类似于饼图,除了它呈现为环形,而饼图是实体填充外,没有什么差异。

5.7.6.   多饼图(muti pie chart)

根据category呈现一组饼图,每一个category对应一个饼图。

5.7.7.   瀑布图(warterfall chart)

瀑布图呈现了唯一一个跨category的stacked bar chart。这种图形对于一个category同另一个category进行比较时是有用的。通常最后一个category等于所有别的category的总和。

5.7.8.   条形和线形组合图(bar line chart)

在比较category值的同时查看趋势。这是一个需要两个category 数据集的图形,第一个产生bar chart,第二个产生line chart。

5.7.9.   冒泡图(bubble chart)

冒泡图允许你查看三维数据,前两维是传统的X/Y维,也就是域和范围(domainand range)。第三维代表单个气泡的大小。

 

六、       将pentaho的资料库迁移到oracle数据库

默认情况下是使用HSQLDB数据库作为pentaho的资料库。

迁移步骤:

1、 将oracle JDBC驱动class12.jar拷贝到..\tomcat\webapps\pentaho\WEB-INF\lib或..\tomcat\common\lib目录,供pentaho BI服务器访问oracle 数据库使用。另外也需要将oracle JDBC驱动拷贝到administration-console\jdbc目录,否则用户不能正常使用pentaho管理控制台。

2、 初始化Oracle 10g数据库。依次执行下面的sql包,在执行sql包前先创建两个用户,quartz/password,用于存储quartz相关信息,另一个用户hibuser/password用户存储pentaho bi服务本身资料库。Sql包说明:

l  Create_repository_Ora.sql,用于创建pentaho_tablespace表空间、新增hibuser/password用户,以及datasource 表。

l  Create_sample_datasource_Ora.sql,往datasource表中增加外部业务资料库连接信息。

l  Create_quartz_ora.sql,创建pentaho_user/password用户,quartz数据库、quartz表等。

3、 修改contex.xml中配置数据库连接的信息。这个文件位于\biserver-ce\tomcat\webapps\pentaho\META-INF位置。修改该文件中的数据库连接相关信息。

4、 打开biserver-ce\pentaho-solutions\system\hibernate中的hibernate-settings.xml配置文件,并启用oracle10g.hibernate.cfg.xml配置文件,配置示例如下。

<config-file>system/hibernate/oracle10.cfg.xml</config-file>

5、 调整oracle10g.hibernate.cfg.xml文件,主要是连接数据库的相关信息。

6、 修改applicationContext-spring-security-hibernate.properties配置文件,它位于biserver-ce\pentaho-solutions\system。下面是配置示例。

Jdbc.driver=oracle.jdbc.driver.OracleDriver

Jdbc.url=jdbc:oracle:thin@localhost:1521:ORCL

Jdbc.username=hibuser

Jdbc.password=password

Hibernate.dialect=org.hibernate.dialect.Oracle10Dialect

7、 修改quartz.properties,位于biserver-ce\pentaho-solutions\system\quartz目录。当使用oracle存储quartz的各种信息时,需要启动如下实现类,即默认的org.quartz.impl.jdbcjobstore.StdJDBCDelegate被替换成OracleDelegate。

Org.quartz.impl.jobstore.driverDelegateClass=org.quartz.impl.jdbcstore.oracle.OracleDelegate

8、 可选地,用户需要修改start_hypersonic.bat中的相关信息。

 

七、       设置publication口令

Pentaho设置工具用来定义BI 内容,如report 、olap cube和metadata。在这些工具中创建的内容文件要部署到BI server上,可以通过手工拷贝这些内容文件到pentaho相应的solution文件夹下来完成部署,但典型的方式还是通过publication来完成部署。

为了能完成publication,需要设置相应的口令,默认情况下是没有设置口令的。为了设置这个口令,需要在pentaho-solution/system目录下的publisher_config.xml文件中添加

<publisher-config>

       <publisher-password>password</publisher-password>

</publisher-config>

这个例子中将 password设置为”password”。

八、       Pentaho Data integration

Pentaho DI包含的主要工具和实用程序:

Spoon – 图形化的DI IDE,用于创建Transformation和job

Kitchen – 运行job的命令行工具

Pan –运行transformation的命令行工具

Carte –在远程主机上运行transformation和job的轻量级服务器。默认的登录用户是cluster/cluster.可以使用Encr –carte <password>修改口令。Carte将登录用户信息存储在/data-integration/pwd目录下的kettle.pwd文件中。

Encr—这个用来加密口令,用法为Encr –kettle <password>

下图是关于pentahoDI 各个工具和组件工作情况说明。

      

Dataintegration engine负责解释和执行数据集成job和transformation。Data integration engine在物理上是以Java库的形式存在,前端可以通过调用公共的api来执行job和transformation。

Data integration engine也包括pentaho BI server,将job和transformation作为 action sequence的一部分来执行。

Repository。Job 和transformation可以存储在数据库知识库中,前端工具可以通过连接知识库来装载job和tranformation定义。

8.1 自动连接知识库

在user的home目录下的.kettle目录中打开kettle.properties文件,然后添加:

KETTLE_REPOSITORY = KETTLE_MD –repositoryname

KETTLE_USER = admin   -- credential user name

KETTLE_PASSWORD = admin  --user password

这样每次启动spoon时,可以自动登录默认的repository。

8.2使用集群

要使用集群,首先要定义相关的子服务器(slave server),然后定义cluster schema,最后将定义好的cluster schema分配给相应的Transformation step。

8.3创建数据库连接

在spoon IDE中在Transformation 树结构中右键单击“数据库连接”->新建连接或新建数据库连接向导或按快捷键F3进入“创建数据连接”窗口。

目前支持几乎所有的数据库连接。

数据库连接选项:

1)  Connection name:定义转换或者任务访问的连接的唯一名称,可以自行设置;

2)  Connection type:连接的数据类型;

3)  Method of access:可以是Native(JDBC),ODBC,或者OCI,一般选择JDBC;

4)  Server host name:指定数据库部署的主机或者服务器的名称,也可以指定 IP 地

址;

5)Database name:指定连接的数据库的名称,如果是 ODBC 方式就指定 DSN 名称;

6)Port number:设定数据库监听的 TCP/IP 端口号

7)Username/password:指定连接数据库的用户名和密码;

数据库用法:

8.4 Transformation Step

8.4.1.           Text File input

这个step用来读取各种不同类型的text-file类型文件,常见的是由excel生成的cvs文件和固定宽度的flat file。

该组件提供了指定文件列表或文件目录列表的能力,支持正则表达式,还可以接收前面步骤生成的文件。

8.4.2.           表输入(table input)

该组件用来从数据库获取信息。主要的属性有数据库连接、sql等。在sql中可以使用变量,如果使用了变量,则必须勾选上“替换sql 语句中的变量”选项,否则变量不能传入,sql语句将报错。

“允许延迟转换”选项可以避免不必要的数据类型转换,改善数据处理性能。

8.4.3.           获取系统信息(get systeminfo)

该组件用来获取kettle环境中可用的信息。

8.4.4.           行发生器(generaterows)

产生多行,具体产生多少行可以通过设置limit(限制)来做设定。可以通过field(字段)列表来指定字段名称及类型。

8.4.5.            输入(De-serializefrom file,原名cube输入)

从二进制的kettlecube文件中读取记录行数据。

8.4.6.           XBase输入

使用这一步可以读取大多数被称为 XBase family派生的 DBF文件。

8.4.7.           Excel输入

该组件可以从一个或多个excel文件中读取数据,可以使用正则表达式来指定文件。

8.4.8.           插入或更新(insert/update)

这个组件首先使用一个或多个对照key来查询表中的一行,如果找到,则更新,如果没有找到则插入。

选项

1、步骤名称:步骤的名称,在单个转换中必须唯一。

2、连接:目标表所在的数据库连接名称。

3、Target  schema:要写入数据的表的 Schema 名称。 允许表名中包含 “.”是很重要的。 

4、目标表:想插入或者更新的表的名称。

5、Commit size:提交之前要改变(插入/更新)的行数。

6、不执行任何更新:如果被选择,数据库的值永远不会被更新。仅仅可以插入。

7、用来查询的关键字:可以指定字段值或者比较符。可以用以下比较符:=,

<>,<,<=,>,LIKE,BETWEEN,ISNULL,IS NOT NULL。

8、更新字段:指定你想要插入/更新的字段

8.4.9.           更新(Update)

这个步骤类似于插入/更新步骤,除了对数据表不作插入操作之外。它仅仅执行更新操作。

8.4.10.       删除(Delete)

这个步骤类似于上一步,除了不更新操作。所有的行均被删除。

8.4.11.       XML 输出(XMLoutput)

这个步骤允许你从源中写入行到一个或者多个 XML 文件。

选项

8.4.12.       数据库查询(Databaselookup)

这个步骤类型允许你在数据库表中查找值。

选项

步骤名称:在单一转换中步骤名称必须唯一。

数据库连接:想要写入数据的连接。

查询表:想要查询的表名。

使用缓存:数据库查询是否使用缓存。这意味着在某种查询值的条件下,每次数据

库都能返回同样的结果。

8.4.13.       流查询(Streamlookup)

这个步骤类型允许你从其它步骤中查询信息。首先, “源步骤(lookup step)”的数据被读到内存中,

然后被用来从主要的流中查询数据。

选项

步骤名称:在单个转换中步骤名必须唯一。

源步骤:数据来源的步骤名称

查询值所需要的关键字:允许你来指定用来查询值的字段名称。值总是用“等于”

比较符来搜索。

接收的字段:你可以指定用来接收字段的名称,或者在值没有找到的情况下的缺省

值,或者你不喜欢旧的字段名称的情况下的新字段名称

Preserve Memory:排序的时候对数据行进行编码以保护内存

Key and value are exactly one integer field: 排序的时候对数据行进行编码

以保护内存

Use sorted list:是否用一个排序列表来存储值,它提供更好的内存使用。

这个步骤的使用类似于数据库查询步骤,区别在于数据库查询使用的是数据库表,而流查询是从文本文件等数据流中查询。

8.4.14.       调用数据库存储过程(Call DBProcedure)

这个步骤允许你运行一个数据库存储过程,获取返回结果。

8.4.15.       字段选择(selectvalue)

   该组件对于选择、重命名或修改字段的长度和精度方面很有用。这几方面被放在了不同的category中,在组件上分别放在不同的tab中。

8.4.16.       过滤记录(Filterrows)

这个步骤允许你根据条件和比较符来过滤记录。

一旦这个步骤连接到先前的步骤中,你可以简单的单击“<field>” , “=”和“<value>”

区域来构建条件。

选项

步骤名称:步骤的名称,在单一转换中必须唯一。 技术资料, 【Kette3.0用户手册】

 发送“true”数据给步骤:指定条件返回 true的数据将发送到此步骤。

 发送“false”数据给步骤:指定条件返回 false 的数据将发送到此步骤。

8.4.17.       空操作(什么也不做)(dummy(do nothing))

该组件什么也不做,只是用来做一些测试时的占位符。

8.4.18.       Row DeNormalizer(行转列)

该组件做行转列。在“构成分组的字段”中指定分组字段,在“目标字段”中指定“目标字段”的名称,目标字段的值字段(从哪个字段中获取值)和“关键字值”。如下图所示的样例:

 

8.4.19.       列转行(Rownormaliser)

用于将列转行

例如下表的数据

转换成下表所示的数据

Row normaliser步骤的设置如下图

8.4.20.       拆分字段(split field)

基于指定的分割符信息进行字段拆分。

8.4.21.       去重(Unique Rows)

     从输入流中去除重复的记录。需要确保输入流是排了序的,否则只有相邻连续的记录会去重。

8.4.22.       分组(group by)

这个组件用来根据一组分组字段进行计算。

选项

步骤名称:步骤的名称,在单一转换中必须唯一。

分组字段:指定分组的字段。

聚合:指定需要聚合的字段、方法以及新字段结果的名称

包含所有的行:如果选择这个,输出中就包含所有的行,不仅仅是聚合。

临时文件目录:临时文件存储的目录。

临时文件前缀:指定命名临时文件时的文件文件前缀。

添加行号,每一个分组重启:如果你想添加行号,就选择这个。

字段名行数:指定行号将插入的字段的名称。

8.4.23.       设置为空值(Null if)

如果某个字符串的值等于指定的值,设置那个值为空。

8.4.24.       计算器(Calculator)

这个步骤提供一个功能列表,可以在字段值上运行。

计算器的一个重要优势是,它有着几倍于常用的 JavaScript 脚本的速度。

8.4.25.       行扁平化(flattener)

这个操作类似行转列(分组字段,对某一列进行行转列)

8.4.26.       值映射(value mapper)

该组件将值从一个值映射到另一个值。通常你想解决存储一个数据库中转换表的问题,不管怎么说,这是一种可选的方案:简单的将转换表作为值映射对话框的一部分。

例如将1映射为男,0映射为女等。

8.4.27.       数据库连接(DatabaseJoin)

这个步骤允许你使用先前步骤的数据,运行一个数据库查询。

能够指定查询参数:

在 SQL 查询中使用“?”

在 SQL 查询中使用数据网格中的字段

 

8.4.28.       合并记录(Merge rows)

该组件可以用来比较两个记录流。对于比较两个不同时间点的记录流是很有用的。常使用在没有包含最后更新时间的数据仓库源系统状态中。两个记录流,参照流和比较流进行合并,记录的最后更新版本数据被传给下一个组件,记录被标记为:

identical – 在两个流中都发现了key,并且值是一致的。

changed—在两个流中都发现了key,但是一个或多个值不一致。

new –key在参照流(旧数据源)中没有发现

deleted – key在比较流(新数据源)中没有发现。

除了deleted状态情况,比较流的数据传到下一个组件中。

需要注意的是,两个流都需要在指定的key上排序。

8.4.29.       Merge join

对两个不同的输入组件的数据集做合并关联。关联类型可以是内联、左外联、右外联和全外联。

需要注意的是,合并join的数据记录需要在指定的key上做排序。

8.4.30.       Java Script 值(JavaScript Value)

这个步骤允许你用JavaScript 语言做复杂的运算。使用的 JavaScript 引擎是 Rhino

1.5R5。

选项

步骤名称:步骤的名称,在单个转换中必须唯一

Java Script:步骤中的脚本。

字段:要添加到输出流中的字段。

8.4.31.       Excute SQL Script

    可以使用该组件执行sql 脚本。可以在整个Transformation初始化中执行一次(一般这种情况用于DDL语句)或在没输入该组件一行记录时执行一次(这种情况一般用于带参的DML语句)。

   注意:如果sql语句中的脚本失败,整个Transformation的执行将挂起。

8.4.32.       维度更新/查询(dimensionlookup/update)

该组件允许你执行Ralphkimball的两类缓慢变化维:第一类(update)和第二类(insert)。使用该组件不仅可以更新维表,还可以查询维表值。

8.4.33.       Oracle批量装载(Oraclebulk loader)

这个步骤允许你大批量加载数据到 Oracle 数据库,它将用一个正确的装载格式,然后

用 Oracle的 SQL*Loader 数据加载工具加载到指定的表中。

选项

步骤名称:步骤的名称,在单个转换中必须唯一。

连接:维表所在数据库的连接。

目标schema: 要写入数据的表的 schema 名称,表名中可以包含”.”。

Sqlldr path: SQL*Loader 数据加载工具的全路径。

装载方式: “自动加载”或者“手动加载” 。如果是“自动加载”,步骤将在用指

定的参数收到所有的输入后运行Sqlldr 工具。如果是“手动加载” ,将生成一个可

以作为后门使用的控制和数据文件。

加载动作:Append、Insert、Replace、Truncate。这些会映射到 sqlddr 的动作

来执行。

错误的最大行数:发生错误的行数,这时 sqlldr 将被中断。与 sqlldr 的“ERROR”

属性来通信。

提交:提交的行数,与sqlldr 的“ROWS”属性通信。

绑定大小:与 sqlldr 的“BINDSIZE”属性通信。

读取大小:与 sqlldr 的“READSIZE”属性通信。

控制文件:sqlldr 控制文件的名称。

数据文件:数据将被写入的数据文件的名称。

日志文件:日志文件的名称,可选。

坏文件:坏文件的名称,可选。

废文件:废文件的名称,可选。

编码:数据指定的编码格式,可以从下拉列表框中选择。

直接路径:直接路径加载的开关,与 sqlldr 的“DIRECT=TRUE”通信。

使用后删除cfg/dat 文件:加载后是否删除控制文件和数据文件的开关。

表字段:ORACLE 表中加载的表字段。

流字段:输入行中带来的字段。

8.4.34.       运行步骤的多个副本

右键单击每个Transformation步后都会出现一个菜单“改变开始复制的数量”,可以设置这个复制的数量,这个对于“数据库查询”组件来说,可以提高其执行的效率。但如果对于其他的组件,将使输出结果记录数翻倍,需要特别注意。另外,对于“数据库查询”组件,如果前一组件采用“数据迁移”是“复制到下一步”而不是“发送到下一步”也会造成“数据库查询”组件的输出记录翻倍。

8.4.35.       问题集

1、 在“表输入”组件中,如何从上一步中获得数据替换sql语句中的参数?

2、  

 

 

8.5 任务条目(Job Entries)

8.5.1             图标

8.5.2              Start

Start 是任务执行的入口,首先必须是任务可以执行。只有无条件的任务条目可以从

Start 入口连接。

8.5.3              Dummy

在一个任务中使用 Dummy条目将什么也不做。这可以使一个任务更清晰的展示,或者在

执行循环中使用。

8.5.4             转换

你可以用一个转换任务条目执行一个先前定义的转换。

选项

8.5.5             任务(Job)

你可以使用 Job 条目来运行一个先前定义的任务。

8.5.6             Shell

你可以使用 Shell 任务条目在任务运行的主机上执行一段 Shell 脚本。

备注:Shell 脚本能在控制台窗口输出文本,输出将转换到 Kettle 日志系统,这不会

影响 Shell脚本的运行。

备注: Windows 系统, 脚本被 “CMD.EXE/C” (NT/XP/20000) 或 “COMMAND.COM/C” (95/98)。

8.5.7             Mail

你可以使用 Mail 任务条目来发送 e-Mail。

8.5.8             SQL

你可以使用 SQL 任务条目执行 SQL 脚本,多行脚本之前用“;”隔开。

8.5.9             FTP

你可以使用 FTP 任务条目从 FTP 服务器上获取一个或者多个文件。

8.5.10         Table Exists

你可以使用 Tableexists任务条目检验数据库中是否存在某个表。

8.5.11         File Exists

你可以使用Fileexists任务条目检验在Kettle运行的服务器上中是否存在某个文件。

8.5.12         Evaluation(javascript)

你可以使用Evaluation 任务条目来计算一个布尔型的变量,这个变量可以在决定下一

个步骤是否将被执行时使用。用户可以使用以下变量:

 Errors:先前的任务条目的错误数

 Lines_input:从数据库或者文件读取的行数

  Lines_output:从数据库或者文件读取的行数

 Lines_updated:数据库表更新的行数

 Lines_read:从先前转换步骤读取的行数

 Lines_written:往下一个转换步骤写入的行数

 Files_retrieved:从FTP 找到的文件数

 Exit_status:Shell 脚本的退出状态

 Nr(integer):任务条目数。每下一个条目就会自动增长

  Iswindows:如果Kettle 运行在Windows 平台上就返回true

8.5.13         Create file

你可以使用 Create afile任务条目创建一个空文件,这对在任务中创建“触发器”是

有用的。

8.5.14         Delete file

你可以使用 Delete afile 任务条目来删除一个文件。

8.5.15         Wait for file

你可以使用 Wait forfile任务条目来等待一个文件。这个任务条目将定期的检查指定

的文件是否存在,以决定流程是否继续。这个条目可以不确定的等待文件或者经过一过段时

间后超时。

8.5.16         File compare

你可以使用 Filecompare 任务条目来比较两个文件的内容,控制任务的流程。当两个

文件相等时,成功流出节点将继续,否则失败节点将继续。

8.5.17         Zip files

这个步骤将按照你在对话框中指定的选择创建一个标准的 ZIP 归档。

选项

九、       Metadata layer

元数据层的用法和范围。

元数据来自数据库以及用户定义元数据通过使用PME(pentahometadata editor)定义并存储在数据库中。

元数据能从知识库中导出成xml文件保存。元数据与在pentahoserver的pentahosolution相关,它用作基于metadata报表服务的源。

使用pentaho报表设计工具,终端用户可以使用元数据创建报表。

当运行基于pentaho元数据报表时,报表引擎解释报表,查询规范(query specifications)以MQL(Metadataquery language)的形式存储在报表中。

下图是metadata 层使用范围概览。

十、       pentaho报表设计工具

10.1 报表架构

下图显示了报表架构的不同组件:

报表设计器定义报表规范

报表规范以xml的格式存放。

报表引擎根据报表规范和输出格式执行报表。

数据库连接定义能使用标准的中间件如JDBC来连接不同的数据源。在报表的最后阶段,报表查询被report engine直接执行。

Pentaho不仅包含了执行pentaho 报表的能力,而且还包含了jasper report 和BIRT报表的类库。Pentaho报表引擎通常叫做JFreeReport,其设计器完全就是JFree Report 设计器的再造版,被称为pentaho report Designer(PRD)。

10.2 基于web的报表(web-based reporting)

Pentaho web 门户(web portal)不仅提供了查看和分析内容,而且也提供了特殊报表(ad hoc report)的能力。

使用基本web的报表工具能创建的报表只限于没有图形、交叉和图片的分组列表。这种web工具官方名字叫Web Ad hoc query andreporting client,简称 WAQR。WAQR只能使用metadata model工作,它必须首先发布到服务器。

WAQR模板存储在pentaho-solutions/system/waqr/templates目录,每个模板都存储在它自己的目录下,增加自己的模板比较容易的方法就是拷贝其中一个文件夹然后再重命名它。可以手工修改模板,关于手工修改模板可以参考

http://wiki.pentaho.com/display/ServerDoc1x/Adhoc+Reporting+Templates

 

 

10.3 Pentaho Report Designer

Pentaho report Designer是一款图形化的前端报表设计工具。它的好处之一是可以使用metadata作为数据源进行报表编辑。报表可以直接使用report designer发布到pentaho BI平台。新的.prpt文件由pentaho server自动生成,因此不需要额外的包装就可以使PRD报表运行在门户网站上。

有两种方式创建报表:

l  The New option

l  The Report Wizard

报表的基本部分:

l  Page header/report footer。任何放在这部分中的元素都会出现在每一页。Page behavior style属性能指定page header或page footer显示在第一页还是最后一页或都不显示。

l  Report Header/Footer。任何放在这部分的内容都只会显示一次。Report header的典型用法是首页,显示所有参数或报表的简单简介或report title。Report footer用于报表的total。

l  Group Header/Footer。一张报表至少会有一个分组,每组会有一个header和footer来放置组标签或小计(subtotal)。分组可以嵌套,创建一个层级报表。

l  Details Body。只有最里层分组包含明细体,它包含来自查询的每一行记录,detail header和detail footer也是明细体的一部分。

l  No Data。这是一种特殊的数据带,显示无查询结果时的显示信息。

l  Watermark。这个主要用来设置背景。

一张PRD只能包含一个Data set,但是一张报表可以包含子报表。合并或使用子报表的的数据到主报表是不可能的。

10.3.1 创建数据库连接

有三种入口创建数据库连接:

l  Data 菜单->adddata source

l  Data tab->add datasources按钮

l  Data Tab->右键单击Data set

10.3.2 创建SQL Query

在创建或编辑Datasource的界面中,右边有创建query的按钮,点增加query按钮可以创建SQL Query,如下图:

10.3.3 增加参数

有以下两种途径进入增加参数窗口:

9、 Data菜单->add parameter

10、             右边Data Tab->右键parameters-> add parameter

                         增加参数窗口

Name中输入参数名

Label是在运行时参数前的提示标签

Value type指定参数的值类型

Data format是指定值的格式

Default value指定参数的缺省值

Mandatory如果选上,参数是必须的

Hidden指定该参数是否需要显示在页面上

Display type-指定参数显示的方式,是单选下拉框还是多选下拉框或文本输入等。

Query-指定参数的值以及显示的内容从哪个query获得,如果是文本输入,可以不指定。

增加参数后,可以在query中使用该参数,使用方式${parameterName}

十一、           保护pentaho管理控制台

1、 管理员账号设置

管理员账号信息存储在/resource/config目录下的login.properties文件中,其格式如下:

admin:OBF:1cb01j1s1kmy1jnb1wn31jk71kjo1iz21caa,server-administrator,content-administrator,admin

其中admin是用户名,OBF是其相应的密码。可以使用下面的命令来重新设置账号及其相应的密码。

java -cp lib/jetty-6.1.2.jar;lib/jetty-util-6.1.9.jarorg.mortbay.jetty.security.Password admin Admin1234

执行该命令需要进入administration-console目录。执行后将生成的OBF拷贝入login.properties中覆盖现有的值即可。

 

2、 使用ssl协议

为了启用https,只需要修改resource/config目录下console.properties文件中的console.ssl.enabled=false设置为true。

 

十二、           Pentaho PSW(pentaho schema worbench)

12.1安装PSW

下载相关软件,解压即可。

在解压后,需要把连接数据库相关驱动程序的Jar包文件拷贝到drivers目录中。

12.2启动psw

在windows环境下,直接运行workbench.bat启动PSW。在unix环境下,执行workbench.sh脚本启动PSW。

在开始设计之前,需要设置连接数据库的相关信息,点Tool->Connection菜单,在弹出的窗口如下图,填入相关的信息。

Driver Class Name –连接数据库的JDBC驱动类名。相应的jar包应该拷贝到drivers目录中。

Connection URL –连接数据库服务的连接字符串。

Username and password –连接数据库的用户名和密码。

12.3 cube设计

创建schema

创建cube,指定fact table

创建维度,指定维度的hierachy,level级相应的dimension table。

指定相应的指标字段。

12.4 Publishcube到BI Server

需要保证pentaho BIServer是可用的,即BI Server是启动了的。

打开要publish 到BI Server的cube所在schema,点file->publish菜单,在弹出框中输入BI server的地址,publish 的password(这个在\server\biserver-ce\pentaho-solutions\system目录下的publisher_config.xml文件中)和授信用户及其密码,如下图所示。

十三、           Mondrian

13.1 Mondrian 架构

  Mondrian系统包括四层:展现层(presentationlayer)、维度层(dimensionallayer)、聚合层(starlayer)和存储层(storagelayer),其架构如图13-1所示。

 

 

 

第一层:展现层,根据用户的不同应用有不同的展现方式,包括pivot tables,pie,line,chart等,也可以通过swing或jsp展现,可以展现成图片或动画。

第二层:维度层,这层主要解析、验证、和执行MDX查询。从效率考虑,维度层批量发单元请求(cell-requests)给聚合层。

第三层:聚合层。这层负责维护聚合缓冲。一个聚合是内存中的由一组维度值确定的指标集。

聚合层向存储层发请求。

第四层:存储层。这是一个关系数据库层,负责提供聚合的单元数据和维表数据。

 

13.2 设计Mondrian Schema

Mondrian Schema定义了一个多维数据库,它包含逻辑数据模型(包含cube、hierachies、成员)和该模型对物理模型的映射。

逻辑模型包含用来写MDX查询的结构:cube、hierachies、level、member。

物理模型是通过逻辑模型呈现的数据源。典型的是星形模型,一组关系数据库表。

  Mondrian Schema文件以xml文件的方式存放。

十四、           Pentaho Analysis Services

用户使用pentahoanalysis services(PAS)的事件流程如下图所示。

1、 终端用户通过http请求浏览、钻取到olappivot 表。

2、 Jpivot servlet接收请求并转变为mdx查询,查询发给mondrian rolap engine

3、 Mondrian解释MDX为sql.这部分技术称为 ROLAP

4、 关系数据库执行这种由Mondrian解释的sql查询。Mondrian接收执行结果

5、 Mondrian接收执行的结果并转换为多位结果集

6、 JPivot使用多位结果集并转换为html页面显示数据。

14.1 JPivot使用

在BI server中打开新的Analysis view,进入JPivot界面。如下图所示。

下图是JPivot的主要工具按钮:

 

 

 

 

 

 

 

 

 

1、可以通过使用钻取的三个按钮指定钻取的方式。通过图形显示来显示图形报表,通过图形设置来设置要显示的图形报表类型及其相关的属性设置。

2、通过MDX语句编辑框编辑MDX来生成报表

3、通过OLAP Navigator来设置报表,包括行列维度设置,filter(slice)设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值