加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

开源ETL工具kettle系列之在应用程序中集成

发布时间:2021-02-06 02:16:30 所属栏目:大数据 来源:网络整理
导读:副标题#e# 摘要 本文主要讨论如何在你自己的Java应用程序中集成Kettle 集成 如果你需要在自己的Java应用程序中集成Kettle,一般来说有两种应用需求,一种是通过纯设计器来设计ETL转换任务,然后保存成某种格式,比如xml或者在数据库中都可以,然后自己调用程

执行Job任务之前还是会读取Job任务的描述文件,然后把这个描述文件(kettle的 .ktr文件)变成一个xml文档的dom :

org.w3c.dom.Document doc = XmlW3CHelper.getDomFromString(jobXmlStr);

之后也是初始化对应的元数据对象JobMeta
jobMeta = new JobMeta(logWriter,doc.getFirstChild(),repository);

得到了jobMeta 之后就可以执行这个Job了,这里跟trans是一样的。
job = new Job(logWriter,StepLoader.getInstance(),jobMeta);
由于Job一般都没有什么返回值,所以Job不需要初始化它下面的对象,直接开始运行就可以了

job.start();
job.waitUntilFinished(5000000);

连接资源库

连接资源库使用的是connectToRepository()方法,先取得RepositoriesMeta对象,然后根据你在setting.xml文件里面定义的repository的名字来连接对应的repository.理论上来说我们一般都只使用一个 repository,但如果在产品中需要使用多个repository的话,你需要自己配置多个repository的名字和对应的用户名和密码。只列出几行关键代码,

repositoriesMeta = new RepositoriesMeta(logWriter);
//从$HOME/.kettle/repositories.xml 读数据.
repositoriesMeta.readData(); 
repositoryMeta = repositoriesMeta.findRepository(repositoryName);
repository = new Repository(logWriter,repositoryMeta,userInfo);
userInfo = new UserInfo(repository,username,password);

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!