欢迎来到天天文库
浏览记录
ID:42615646
大小:24.37 KB
页数:7页
时间:2019-09-18
《Java应用程序中集成Kettle》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java应用程序中集成Kettle摘要:本文主要讨论如何在你自己的Java应用程序中集成Kettle如果你需要在自己的Java应用程序中集成Kettle,一般来说有两种应用需求,一种是通过纯设计器来设计ETL转换任务,然后保存成某种格式,比如xml或者在数据库中都可以,然后自己调用程序解析这个格式,执行这种转换,是比较抽象的一种执行方式,ETL里面转换了什么东西我们并不关心,只关心它有没有正常执行。另一种是通过完全编程的方式来实现,详细的控制每一个步骤,需要知道转换执行的成功与否,这种方式可能需要更多的理解kettle的API以便更好的跟你的应用程序紧密结合,不过难度也比较大,
2、可以很好的定制你的应用程序,代价自然是入门门槛比较高。本文主要向你解释第一种Kettle的集成方式,文中所列出的代码节选自pentaho,不过应用程序本身跟pentaho没有什么关系。Pentaho集成kettle的代码主要是两个类,KettleSystemListener和KettleComponent,看名字就猜出KettleSystemListener主要是起监听器的作用,它主要负责初始化kettle的一些环境变量,这个类主要包含四个方法:startup(),readProperties(),environmentInit(),shutdown(),程序入口自然是star
3、tup()方法,然后它会调用environmentInit()方法,这个方法就调用readProperties()方法读一个配置文件kettle。properties,这个文件主要记录者kettle运行时可以调用的一些环境变量,关于kettle。properties文件怎么用,第二篇文章“使用Kettle设计动态转换”有提到,readProperties()方法读完这个文件之后就把里面的键值对转换成变量传给kettle运行环境。当kettle运行完了之后就调用shutdown()方法结束转换。KettleSystemListener相对逻辑比较简单,就不多介绍,下面主要介绍重点
4、类:KettleComponentKettleComponent的方法主要有三种类型,一类是用来初始化工作,做一些验证工作,第二类是执行转换的方法,也是主要需要讨论的方法,第三类是取得数据结果的,有时候你需要得到转换的结果交给下一个步骤处理。下面分别讨论这三类方法。初始化KettleComponent的初始化工作主要是验证这个转换,包括有validateSystemSettings(),init(),validateAction(),全部都是public方法,validateSystemSettings()会检查kettle使用何种方式来连接资源库。kettle有两种方式连接资
5、源库,一种是纯数据库式,也就是你所有的转换全部都保存在一个数据库中,一般你在开始使用kettle的时候,它都会要求你建立一个资源仓库,这个资源仓库的连接方式就是你的数据库连接,你需要能够有相应的数据库驱动和对应的连接用户名和密码。另外一种连接方式是使用文本文件,也就是xml文件,在做完任何转换之后,我们都可以把转换或者Job变成xml文件输出,这个输出文件包含你所有转换的全部信息。在示例应用中使用的是文件的连接方式,下面看一下初始化的一段代码:BooleanuseRepository=PentahoSystem.getSystemSetting("kettle/settings
6、.xml","repository.type","files").equals("rdbms");PentahoSystem.getSystemSetting()方法只是返回一个字符串,使用的xpath读一个xml的对应字段,下面列出settings.xml文件:filesadminadmin可以看到其中的repositories.xml.file上面的一段注释,如果这个值为空会默认使用$HOME/.kettle/repository.xml文件当作资源库的连接文件,由于示例中使用的是文本文件所以没有用数据库连接,下面的repository.userid和repository.
7、password是指的kettle的资源库连接的用户名和密码,一般默认安装就两个,admin/admin和guest/guest,这里的用户名和密码不是连接数据库的用户名和密码,连接数据库的用户名和密码是在另外一个文件repositories.xml。file指定的值所定义的一般默认的kettle安装并且运行了一段时间之后,会在$HOME/.kettle目录下创建一些文件,如果你要在自己的系统中集成kettle的话,也需要保留这些文件,当然不一定位置是在原来的位置,关键是要让kettle知道
此文档下载收益归作者所有