PDI 的帮助都移到了 wiki 上
以前 Spoon 的帮助都是以 PDF 文件提供的, 现在都移到了 wiki 上, 这样用户可以直接在 wiki 上发评论: http://wiki.pentaho.com/display/EAI/Spoon+User+Guide[@more@]3.1 里所有的步骤的帮助: http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps3.1 里所有的作业项的帮助: http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Job+Entries
PDI 对 PostGreSQL 的一些特殊处理
PostGreSQL 和其它数据库(SQLServer, Oracle等)有一个很大的不同: 就是写数据时,如果有主键冲突或其它错误,PostGreSQL 会等待事务结束,错误语句后面的语句都将被忽略.[@more@]所以 PDI 在向 PG 数据库写数据时,关闭了批量提交,,这样做影响了性能. 不过 PDI 通过 setSavePoint 和 releaseSavepoint 方法尽量来挽回一定的性能损失.有同样问题的还有 GP (记不清了好像叫 GreePalm) 数据库.
关于 Pentaho 的配置文件 pentaho.xml
关于 Pentaho 的配置文件 Pentaho 的配置文件 pentaho.xml 包括了 Pentaho 平台的系统级的设置在 Pentaho 1.6 以前的版本中配置文件 pentaho.xml 位于${solutionsdir}/system 目录下, 配置文件的目录和名称都是不可改变的.[@more@]在 1.6 和以后的版本中,加入了系统配置文件名参数. 当 Pentaho 平台启动的时候, 首先会找一个叫 PENTAHO_SYS_CFG_PATH 的命令行参数, 如果找到了这个参数, 平台就用这个参数的值作为系统配置文件,如果没有找到这个参数, 系统会找到默认的 ${solutionsdir}/system/pentaho.xml 文件作为配置文件. 有时候系统开
Pentaho 使用中发现的几个问题和解决方法
1: Caused by: org.apache.commons.vfs.FileSystemException: Multiple providers registered for URL scheme "solution"原因: pentaho-vfs.jar版本冲突 解决方法: remove the pentaho-vfs.jar from lib directory (and application.xml declaration)..[@more@]2: org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Failed to obtain DB connection from data source 'myDS': java.sql.SQLException: Could not retrieve datasource via
最近做了一个 PDI 的 jasperreport 的插件
通过 PDI 处理过的数据可以直接出 Jasper 的报表了.cheer![@more@]
一种特殊文本格式的输入
"1"|"99A1026164***01"|"1"|"张学友"|"香港市"|"200063"|"张学友"|"个人"|"00****72"|"99A102616400"|"xx证券"|"66800000030005119"|"身份证"|"313705197310******"|"133****0369"|""|""|""|"寄送"|""|""|""|""|""|""|""|"20080129"|"200801
Kettle 在应用中遇到的一些问题和解决方法
本文主要总结了 Kettle 在中文环境应用中遇到的一些问题, 问题列表还会不断增加. 这些问题都是 kettle fans 提供的,欢迎参与讨论.问题1:从excel 中抽取数据,插入到oracle 9 数据库中,报下面的错误.2008/06/25 13:30:57 - 插入更新数据表.0 - Insert row: ![field1=1.3965E8, field2=1,798, field3=2002/05/27 00:00:00.000]2008/06/25 13:30:57 - oracl - ERROR : java.sql.SQLException: ORA-01722: 无效数字2008/06/25 13:30:57 - oracl - ERROR : at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125) [@m
关于 PDI 性能的简单测试
PDI 使用了下面的技术来提高性能:1. 数据库连接池。2. 多线程并发进行数据转换: 转换步骤是并发执行的,使用生产者/消费者的模式,每个步骤由一个线程来执行,当前步骤将一次处理完的数据放在缓存里,由下一个步骤的线程读取并再处理这些数据。[@more@]3. 数据批量装载: 表输出步骤中设置批量装载。4. 对于某些数据库还利用了数据库自身提供的装载工具, 如 Oracle 的 SQLLoader. 在 PDI 3.1 中提供了该功能。5. 集群: 主服务器 (master server) 将大任务分解为多个小任务, 并将要处理的数据通过 soket 发送到从服务器(slave server), 由多个从
pentaho 的框架
这个图就是Pentaho 的框架图:pentaho 的框架图展示了 BI 服务上的主要的组件和他们与外部的接口。BI 服务的中心是解决方案引擎(Solution Engine)。如图所示解决方案引擎位于外部客户端和内部组件层的中间,外部客户端包括 Web浏览器,web服务客户端,系统监控等。客户端的请求首先会被发送到解决方案引擎,再由该引擎转发到相应的一个或多个组件。操作序列(Action Sequence)[@more@]一个操作序列就是一个 XML 文件,它定义了解决方案引擎可以处理的最小的任务。在操作序列 XML 文件里定义了一些操作的序列,每个操作都由特地的 Pentah
关于资源库
资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中。资源库可以是各种常见的数据库,用户通过用户名/密码来访问资源库中的资源,默认的用户名/密码是admin/admin[@more@]资源库并不是必须的,如果没有资源库,用户还可以把转换任务保存在 xml 文件中。如果用户需要创建一个资源库,在资源库的登录窗口(PDI 启动时的第一个窗口)中有 【新建】 按钮,点击该按钮弹出新建资源库窗口,在该窗口中选择一个数据库连接,如果没有事先定义的数据库连接,则还要点击【新建】按钮,来创建一个数据库连接。选择数据
记录集连接步骤
该步骤就是将两个表或记录集进行连接。可选的连接方式有INNER:内连接[@more@]LEFT OUTER:左连接RIGHT OUTER:右连接OUTER:外连接
合并记录步骤
该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配、比较、合并。需要设置的参数:[@more@]旧数据来源:旧数据来源的步骤新数据来源。新数据来源的步骤标志字段:设置标志字段的名称,标志字段用于保存比较的结果,比较结果有下列几种。1. “identical” – 旧数据和新数据一样2. “changed” – 数据发生了变化;3. “new” – 新数据中有而旧数据中没有的记录4. “deleted” –旧数据中有而新数据中没有的记录关键字段:用于定位两个数据源中的同一条记录。比较字
行转列步骤
行转列步骤实际上就是生成所谓的透视表(pivoted table)的步骤,在直观上也就是将属于同一组的多行数据变为一行数据。[@more@]分组字段:将所有记录分成不同组的字段名称。关键字段:在一个分组内区分不同记录的字段名称。关键字值:关键字段的值,一般是可以枚举的整数或字符。数据字段:保存实际数据的字段名称目标字段:由关键字段和数据字段组合而成的新字段名称,该字段名称可以自定义。例子:下面的数据人员编码职务选票数104115122206219221可以转换为人员编码第一职务第二职务第三职务145221691对应的设置分组字段:人员编码关键
数据库查询步骤
该步骤可以根据数据流里的数据来查询数据库表里的数据,并得到数据表里的指定字段。查询得到的字段也作为数据流里的字段,并转到下一个步骤。[@more@]需要设置的参数数据库连接:要查询的表所在的数据库连接.查询的表:要查询的表名.表字段:指定用来比较的表里的字段比较操作符:包括 =、 <、 >、 like、between 等操作符流字段1:指定用来比较的流里的字段流字段2:指定用来比较的流里的字段,仅适用于双操作数的操作符,如between。查询表返回的值字段:要获得的查询表里的字段新名称:可以为该字段指定一个新的名称默认值:查询
表输入步骤
表输入是从一个数据库表或数据库视图中获得数据。在表输入步骤里要选择数据库和数据库里的某个表或视图。也可以直接输入SELECT 语句来获得数据。配置窗口中选项说明:[@more@]1 替换脚本脚本里的变量:是否在SQL 语句里可以使用变量。如下面的SQL 语句使用了变量 minID。SELECTf1, f2FROM t1WHERE f1 >= ${minID}2 从步骤插入数据:除变量外,用户输入的SQL 语句在运行时还可以接收其它步骤的运行结果,也就是将其它步骤的运行结果作为一个SQL 语句的参数。如下面的SQL 语句,使用 ?作为接收参数的位置。(语句格式类似于JDBC规范里的
JavaScript 转换步骤
Kettle 里的 JavaScript步骤 是一个非常重要的转换步骤,一般来说其他步骤搞不定的事情,都可以由它来解决。 JavaScript步骤里使用的脚本是 Mozilla 的 Rhino,Rhino 是一个很流行的脚本语言。正因为它的出色,所以被 JDK 1.6 收编了,换了一身行头变成 javax.script 包了。不过 Mozilla 还一直在开发Rhino ,最近的一个 Realease1.7 是 08年3月份发布的。Rhino 作为一种脚本语言要遵守脚本语言的标准,对 Rhino 或脚本语言不熟悉的朋友可以参考下面的几个连接 Rhino介绍 javaScript 介绍 javaScript 规范 我们来看看 Kettle 里的 JavaScr
Excel 输入步骤
Excel 输入步骤用于从Excel 文件中按照指定的数据类型和格式获取数据。Excel输入步骤的设置包括五个部分: 1. 文件[@more@]选择一个Excel文件或保存有Excel 文件的目录。文件或目录:设置要读取的Excel文件的名称,或一个目录。可以使用【浏览】按钮来选择文件或目录。正则表达式:设置一个正则表达式来匹配一个目录下的部分Excel文件。选择的文件:列出所有选中的文件,可以使用【增加】按钮将【文件或目录】中的文件添加到文件列表中。2. 工作表选择工作薄中的一个或多个工作表,并通过指定工作表中的开始行号和开始列号来设要读取的内容
PDI(Kettle) 是什么?PDI(Kettle) 都能做什么?
PDI(Kettle) 是什么?PDI(Kettle) 是一款开源的、元数据驱动的 ETL (数据的抽取、转换、加载)工具,是开源 ETL 工具里功能比较强大的一个。 [@more@]PDI 的全称是Pentaho Data Integeration,Kettle 是 PDI 以前的名称,Kettle 本意是水壶的意思,表达了数据流的含义。Kettle 的主作者是 Matt ,他在 2003 年就开始了这个项目,在 PDI 的代码里就可以看到最早的日期大概在2003年4月。 从版本2.2开始, Kettle 项目进入了开源领域,并遵守 LGPL 协议。 在 2006年 Kettle 加入了开源的 BI 组织 Pentaho, 正式命名为PDI, 加入Pentaho 后Kettl
文本文件输入步骤
从文本文件中获得数据,常见的文本文件包括csv 、txt、文件等。用户要在该步骤指定文件名、文件内容、错误处理方式、过滤器、字段等项目。 参数说明: [@more@]l 指定文件名的三种方式 1. 指定一个具体的文件名。 2. 指定一个正则表达式,来匹配一个目录下的文件。 3. 将其它步骤的运行结果作为文件名。 l 文件内容设置 分隔符:指定字段之间的分隔符号 文本限定符:指定一个字符串左右的限定符号,有限定符的字符串里可以使用分隔符。有限定符的字符串内部如果要使用限定符,要将限定符加倍。 转义符:指定文本中的转义符号,用来将其后的