Sunday, July 23, 2006

KETTLE JAVA API 实战记录

KETTLE JAVA API 实战记录
陈海青(www.chq.name)
2006.07.20
版权所有:陈海青(joson chen) www.chq.nameCopyright (C) 陈海青(joson chen) www.chq.name All Rights Reserved 转载或引用本网版权所有之内容须注明“转自(或引自)chq.name (Junit fans)”字样,
并标明本网站网址http://www.chq.name
引言:最近有个项目需要使用Kettle,但是,经过多方查找,却发现相关的资料和介绍极少,于是根据kettle的文档,费尽周折,终于完成了这篇《KETTLE JAVA API 实战记录》,为避免更多的人走弯路,现在发布出来,供大家参考。
引言:最近有个项目需要使用Kettle,但是,经过多方查找,却发现相关的资料和介绍极少,于是根据kettle的文档,费尽周折,终于完成了这篇《KETTLE JAVA API 实战记录》,为避免更多的人走弯路,现在发布出来,供大家参考。
前言:
为什么要用Kettle和KETTLE JAVA API?
Kettle是什么?kettle:是一个开源ETL工具。kettle提供了基于java的图形化界面,使用很方便,kettle的ETL工具集合也比较多,常用的ETL工具都包含了。
为什么使用KETTLE JAVA API:就像kettle文档所说:KETTLE JAVA API : Program your own Kettle transformation,kettle提供了基于JAVA的脚步编写功能,可以灵活地自定义ETL过程,使自行定制、批量处理等成为可能,这才是一个程序员需要做的工作,而不仅是象使用word一样操作kettle用户界面。
KETTLE JAVA 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(www.chq.name) 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=admin
七、 好了,现在可以运行一下了,看看数据是不是已经拷贝到目标表了。
运行时的控制台信息输出、自动生成的Transformation、修改后的程序源码:因论坛长度限制,略,详见www.chq.name--商业智能--kettle

我的网站列表欢迎各位光临

我的网站列表欢迎各位光临
chq.name,junit Fans: 关注Junit,软件开发,软件测试,项目管理,网站建设,手机等,还有美食和旅游等内容.
about Junit,software development,project manage,software testing,website building,BI,mobile phone,tour,food,etc.
www.chq.name


google上我的BLOG google上我的BLOG


百度上我的空间 我在百度上的空间


joson的博客(泡泡) joson在泡泡上的的博客。


Junit Fans 主站点


我的搜狐博客--@blog.sohu.com 我的搜狐博客--@blog.sohu.com


我的 MSN 共享空间 我的 MSN 共享空间


junit fans main website


blog on matrix.org.cn 在Matrix的Blog


junit.roxr.com mirror website


joson.itpub.net JOSON ON ITPUB BLOG