开发技术:KETTLE+JAVA+API+开发实战

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前言:

为什么要用Kettle和KETTLE JA V A API?

Kettle是什么?kettle:是一个开源ETL工具。kettle提供了基于java的图形化界面,使用很方便,kettle的ETL工具集合也比较多,常用的ETL工具都包含了。

为什么使用KETTLE JA V A API:就像kettle文档所说:KETTLE JA V A API :Program your own Kettle transformation,kettle提供了基于JA V A的脚步编写功能,可以灵活地自定义ETL过程,使自行定制、批量处理等成为可能,这才是一个程序员需要做的工作,而不仅是象使用word一样操作kettle用户界面。

KETTLE JA V A API 实战操作记录:

一、搭建环境:到http://www.kettle.be网站下载kettle的源码包,加压缩,例如解压缩到d:\kettle目录

二、打开eclipse,新建一个项目,要使用jdk1.5.0,因为kettle的要使用System.getenv(),只有在jdk1.5.0才被支持。提起getenv(),好像有一段几起几落的记录,曾一度被抛弃,现在又被jdk1.5支持了。

三、建一个class :TransBuilder.java,可以把d:\kettle\ extra\TransBuilder.java 的内容原样拷贝到你的TransBuilder.java里。

四、根据需要编辑源码。并需要对原程序进行如下修改,在头部增加:

import org.eclipse.swt.dnd.Transfer;

//这个包被遗漏了,原始位置kettle根目录\libswt\win32\swt.jar

//add by chq()on 2006.07.20

(后来发现,不必加这个引用,因为编译时不需要)

五、编译准备,在eclipse中增加jar包,主要包括(主要依据extra\TransBuilder.bat):

\lib\kettle.jar

\libext\CacheDB.jar

\libext\SQLBaseJDBC.jar

\libext\activation.jar

\libext\db2jcc.jar

\libext\db2jcc_license_c.jar

\libext\edtftpj-1.4.5.jar

\libext\firebirdsql-full.jar

\libext\firebirdsql.jar

\libext\gis-shape.jar

\libext\hsqldb.jar

\libext\ifxjdbc.jar

\libext\javadbf.jar

\libext\jconn2.jar

\libext\js.jar

\libext\jt400.jar

\libext\jtds-1.1.jar

\libext\jxl.jar

\libext\ktable.jar

\libext\log4j-1.2.8.jar

\libext\mail.jar

\libext\mysql-connector-java-3.1.7-bin.jar

\libext\ojdbc14.jar

\libext\orai18n.jar

\libext\pg74.215.jdbc3.jar

\libext\edbc.jar

(注意:下面这个包被遗漏了,要加上。原始位置kettle根目录\libswt\win32\swt.jar)

\libswt\win32\swt.jar

六、编译成功后,准备运行

为使程序不必登陆就可以运行,需要设置环境署文件:kettle.properties,位置在用户目录里,一般在\Documents and Settings\用户\.kettle\,主要内容如下:

KETTLE_REPOSITORY=kettle@m80

KETTLE_USER=admin

KETTLE_PASSWORD=passwd

七、好了,现在可以运行一下了,看看数据是不是已经拷贝到目标表了。

以下为修改后的程序源码:

++++++++++++++++++++++++++++++++

package name.chq.test;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import be.ibridge.kettle.core.Const;

import be.ibridge.kettle.core.LogWriter;

import be.ibridge.kettle.core.NotePadMeta;

import be.ibridge.kettle.core.database.Database;

import be.ibridge.kettle.core.database.DatabaseMeta;

import be.ibridge.kettle.core.exception.KettleException;

import be.ibridge.kettle.core.util.EnvUtil;

import be.ibridge.kettle.trans.StepLoader;

import be.ibridge.kettle.trans.Trans;

import be.ibridge.kettle.trans.TransHopMeta;

import be.ibridge.kettle.trans.TransMeta;

import be.ibridge.kettle.trans.step.StepMeta;

import be.ibridge.kettle.trans.step.StepMetaInterface;

import be.ibridge.kettle.trans.step.selectvalues.SelectValuesMeta; import be.ibridge.kettle.trans.step.tableinput.TableInputMeta; import be.ibridge.kettle.trans.step.tableoutput.TableOutputMeta;

相关文档
最新文档