Etl工具之Kettle与java集成二
2017-09-06 17:33
253 查看
1.上篇文章已经讲到,怎么新建一个转换,当然,那只是很简单的操作,下面我们将学习怎么将在kettle新建的转换或任务,放入到程序中,由程序调用执行
首先,我们需要将kettle的jar包放入到程序的lib目录下,当然不只kettle包,还有其他一些重要的包,可以直接到http://download.csdn.net/download/xiaosemei/9967136进行下载,
2.新建项目kettle ,我这里用来演示,
3.kettle初始化代码(我这里执行和初始是分开的。。方便在次执行的时候不需要初始化)
至此,kettle与java集成完成
首先,我们需要将kettle的jar包放入到程序的lib目录下,当然不只kettle包,还有其他一些重要的包,可以直接到http://download.csdn.net/download/xiaosemei/9967136进行下载,
2.新建项目kettle ,我这里用来演示,
3.kettle初始化代码(我这里执行和初始是分开的。。方便在次执行的时候不需要初始化)
import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.repository.RepositoryDirectoryInterface; import org.pentaho.di.repository.kdr.KettleDatabaseRepository; import org.pentaho.di.repository.kdr.KettleDatabaseRepositoryMeta; /** * Created by 31767 on 2017/8/16. */ public class KettleEnvironments { public static KettleDatabaseRepository repository; public static DatabaseMeta databaseMeta; public static KettleDatabaseRepositoryMeta kettleDatabaseMeta; public static RepositoryDirectoryInterface directory; /* * KETTLE初始化*/ public static String KettleEnvironments() { try { KettleEnvironment.init();repository = new KettleDatabaseRepository(); databaseMeta = new DatabaseMeta("ETL", "Oracle", "Native", "172.14.5.6","cdr", "1521", "ETL", "xin");//资源库数据库地址,我这里采用oracle数据库 kettleDatabaseMeta = new KettleDatabaseRepositoryMeta("ETL", "ERP", "Transformation description", databaseMeta); repository.init(kettleDatabaseMeta); repository.connect("adm", "adm");//资源库用户名和密码 directory = repository.loadRepositoryDirectoryTree(); } catch (KettleException e) { e.printStackTrace(); return e.getMessage(); } return null; } }4.kettle执行代码
/** * Created by DEH on 2017/7/3. */ import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.job.Job; import org.pentaho.di.job.JobMeta; import org.pentaho.di.repository.Repository; import org.pentaho.di.repository.RepositoryDirectoryInterface; import org.pentaho.di.repository.kdr.KettleDatabaseRepository; import org.pentaho.di.trans.Trans; import org.pentaho.di.trans.TransMeta; public class ExecRepository {
/*测试代码,*/ public static void main(String[] args) { KettleEnvironments.KettleEnvironments(); String transName=null;//转换或作业名称 String[] params=null;//参数 try { String result = ExecuteDataBaseRepTran(KettleEnvironments.repository, transName, params, null); } catch (KettleException e) { e.printStackTrace(); } } /*执行转换文件*/ private static String ExecuteDataBaseRepTran(KettleDatabaseRepository repository, String transName, String param[], String jgname) throws KettleException { //根据变量查找到模型所在的目录对象,此步骤很重要。 RepositoryDirectoryInterface directory = repository.findDirectory("/"); //创建ktr元对象 TransMeta transformationMeta = ((Repository) repository).loadTransformation(transName, directory, null, true, null); //创建ktr Trans trans = new Trans(transformationMeta); //执行ktr trans.execute(param); //等待执行完毕 trans.waitUntilFinished(); if (trans.getErrors() > 0) { return "NO"; } else { return "OK"; } } private static String execRepositoryJobs(KettleDatabaseRepository repository, RepositoryDirectoryInterface directory, String jobName, String jhid) throws KettleException { JobMeta jobMeta = ((Repository) repository).loadJob(jobName, directory, null, null); Job job = new Job(repository, jobMeta); job.setVariable("id", jhid); job.start(); job.waitUntilFinished(); if (job.getErrors() > 0) { return "NO"; } else { return "OK"; } } }
至此,kettle与java集成完成
相关文章推荐
- 记 java 调用 ETL 工具 kettle 作业
- ETL工具kettle与JAVA结合使用程序生成转换
- ETL工具kettle与java结合使用程序生成一个简单的转化文件
- 开源ETL工具kettle系列之在应用程序中集成
- ETL工具kettle怎么将多个转换集成到一个作业中
- ETL-Kettle-Java调用
- 在google code上开了一个java版的ETL小工具project:jmyetl
- 在eclipse中集成java反编译工具
- 8款最好用的Java集成开发工具(IDE)
- 关于ETL 工具 kettle
- 开源ETL工具kettle系列之常见问题(转载)(
- Kettle 与 Talend Open Studio 的 ETL 比较以及其它ETL工具(网络收集)
- 几种 ETL 工具的比较(Kettle,Talend,Informatica 等)
- 开源作业调度工具实现开源的Datax、Sqoop、Kettle等ETL工具的作业批量自动化调度
- ETl的工具(Kettle)和AIX服务器定时任务总结
- ETL工具之——kettle使用简介
- java内存工具VisualVM的简单使用以及与Idea集成
- JetBrains IntelliJ IDEA for Mac 15.0 破解版 – Mac 上强大的 Java 集成开发工具
- etl工具kettle学习——下载安装使用
- Kettle定时执行(ETL工具) .