网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 新手入门 > 开发工具 > 开发技术:KETTLE JAVA API 开发实战记录  

开发技术:KETTLE JAVA API 开发实战记录

2006-09-26  作者:网管整理  来源:bitsCN.com  点评 投稿 收藏

  前言:

  为什么要用Kettle和KETTLE JAVA API?

网管网www.bitscn.com

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

网管u家u.bitscn@com

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

  KETTLE JAVA API 实战操作记录:

网管下载dl.bitscn.com

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

网管u家u.bitscn@com

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

网管网www_bitscn_com

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

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

网管u家u.bitscn@com

  import org.eclipse.swt.dnd.Transfer;

网管论坛bbs_bitsCN_com

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

  //add by chq(www.chq.name) on  2006.07.20 网管联盟bitsCN@com

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

网管bitscn_com

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

网管网www_bitscn_com

  \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 中国网管联盟bitsCN.com

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

  \libswt\win32\swt.jar 中国网管论坛bbs.bitsCN.com

  六、         编译成功后,准备运行 中国网管论坛bbs.bitsCN.com

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

  KETTLE_REPOSITORY=kettle@m80

网管联盟bitsCN_com

  KETTLE_USER=admin 网管网www.bitscn.com

  KETTLE_PASSWORD=passwd 中国网管联盟bitsCN.com

七、         好了,现在可以运行一下了,看看数据是不是已经拷贝到目标表了。 中国网管联盟bitsCN.com

  网管u家u.bitsCN.com

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

网管u家u.bitscn@com

++++++++++++++++++++++++++++++++ 中国网管论坛bbs.bitsCN.com


package name.chq.test; 网管bitscn_com

 

网管网www_bitscn_com

import java.io.DataOutputStream; 中国网管论坛bbs.bitsCN.com

import java.io.File;

网管bitscn_com

import java.io.FileOutputStream;

网管bitscn_com

 

网管下载dl.bitscn.com

import be.ibridge.kettle.core.Const;

网管联盟bitsCN@com

import be.ibridge.kettle.core.LogWriter;

网管bitscn_com

import be.ibridge.kettle.core.NotePadMeta;

网管网www.bitscn.com

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

网管u家u.bitscn@com

import be.ibridge.kettle.core.database.DatabaseMeta; 网管u家u.bitscn@com

import be.ibridge.kettle.core.exception.KettleException; 网管论坛bbs_bitsCN_com

import be.ibridge.kettle.core.util.EnvUtil; 中国网管联盟bitsCN.com

import be.ibridge.kettle.trans.StepLoader;

网管论坛bbs_bitsCN_com

import be.ibridge.kettle.trans.Trans;

网管u家u.bitscn@com

import be.ibridge.kettle.trans.TransHopMeta;

网管u家u.bitsCN.com

import be.ibridge.kettle.trans.TransMeta; 网管联盟bitsCN@com

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

网管联盟bitsCN_com

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

网管下载dl.bitscn.com

import be.ibridge.kettle.trans.step.selectvalues.SelectValuesMeta;

网管u家u.bitscn@com

import be.ibridge.kettle.trans.step.tableinput.TableInputMeta;

网管网www_bitscn_com

import be.ibridge.kettle.trans.step.tableoutput.TableOutputMeta; 网管网www_bitscn_com

  网管网www_bitscn_com

  网管u家u.bitscn@com

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

网管联盟bitsCN_com

//add by chq([link=http://www.chq.name]www.chq.name[/link]) on  2006.07.20

网管网www.bitscn.com

//import org.eclipse.swt.dnd.Transfer; 中国网管论坛bbs.bitsCN.com

 

网管论坛bbs_bitsCN_com

/**

网管u家u.bitsCN.com

 * Class created to demonstrate the creation of transformations on-the-fly.

网管u家u.bitscn@com

 * 网管联盟bitsCN@com

 * @author Matt

中国网管联盟bitsCN.com

 * 网管联盟bitsCN_com

 */ 网管网www.bitscn.com

public class TransBuilder 网管论坛bbs_bitsCN_com

{ 网管联盟bitsCN_com

    public static final String[] databasesXML = { 网管论坛bbs_bitsCN_com

        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + 网管u家u.bitscn@com

        "<connection>" +

中国网管论坛bbs.bitsCN.com

          "<name>target</name>" +

网管联盟bitsCN_com

          "<server>192.168.17.35</server>" + 网管联盟bitsCN@com

          "<type>ORACLE</type>" + 网管bitscn_com

                     "<access>Native</access>" + 网管联盟bitsCN@com

                     "<database>test1</database>" +

网管下载dl.bitscn.com

                     "<port>1521</port>" +

网管bitscn_com

                     "<username>testuser</username>" + 网管联盟bitsCN_com

                     "<password>pwd</password>" +

网管u家u.bitscn@com

                     "<servername/>" +

网管u家u.bitscn@com

                     "<data_tablespace/>" + 网管网www_bitscn_com

                     "<index_tablespace/>" +

网管下载dl.bitscn.com

                     "<attributes>" + 网管bitscn_com

                       "<attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>" + 网管网www_bitscn_com

                       "<attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>" +

网管bitscn_com

                          "<attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>" + 中国网管论坛bbs.bitsCN.com

                            "</attributes>" +

网管u家u.bitsCN.com

                       "</connection>" ,

网管网www.bitscn.com

  中国网管论坛bbs.bitsCN.com

        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +

网管u家u.bitscn@com

                         "<connection>" + 网管网www.bitscn.com

                                "<name>source</name>" + 网管u家u.bitscn@com

                                "<server>192.168.16.12</server>" + 网管论坛bbs_bitsCN_com

                                "<type>ORACLE</type>" + 网管下载dl.bitscn.com

                                "<access>Native</access>" + 中国网管联盟bitsCN.com

                                "<database>test2</database>" +

网管联盟bitsCN_com

                                "<port>1521</port>" +

网管联盟bitsCN_com

                                "<username>testuser</username>" + 网管u家u.bitsCN.com

                                "<password>pwd2</password>" + 网管网www.bitscn.com

                                "<servername/>" +

网管联盟bitsCN@com

                                "<data_tablespace/>" +

网管u家u.bitscn@com

                                "<index_tablespace/>" + 网管网www.bitscn.com

                                "<attributes>" + 网管u家u.bitsCN.com

                                    "<attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>" + 网管网www_bitscn_com

                                    "<attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>" + 中国网管论坛bbs.bitsCN.com

                                       "<attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>" +

网管网www.bitscn.com

                                "</attributes>" + 网管论坛bbs_bitsCN_com

                         "</connection>" 网管论坛bbs_bitsCN_com

    };

网管下载dl.bitscn.com

 


TAGs   实战   记录   开发       "   <   //   the   String   libext      
 上一篇:IntelliJ IDEA 版本5以及6的用户配置   下一篇:新手入门:使用 AppFuse 的七个理由
开发技术:KETTLE JAVA API 开发实战记录 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: