java实现kettle
来源:互联网 发布:php 处理图片 s3 编辑:程序博客网 时间:2024/05/19 16:32
调用本地
1.本地执行ktr文件(转换)
/** * 运行转换文件方法 * @param params 多个参数变量值 * @param ktrPath 转换文件的路径,后缀ktr */ public static void runTransfer() { String ktrPath="E:\\kettle\\data-integration\\demo\\demo1.ktr"; Trans trans = null; try { // // 初始化 // 转换元对象 KettleEnvironment.init();// 初始化 EnvUtil.environmentInit(); TransMeta transMeta = new TransMeta(ktrPath); // 转换 trans = new Trans(transMeta); // 执行转换 trans.execute(null); // 等待转换执行结束 trans.waitUntilFinished(); // 抛出异常 if (trans.getErrors() > 0) { throw new Exception( "There are errors during transformation exception!(传输过程中发生异常)"); } } catch (Exception e) { e.printStackTrace(); } }2.本地执行kjb(JOB)
/** * java 调用 kettle 的job * * @param jobname * 如: String fName= "D:\\kettle\\informix_to_am_4.ktr"; */ public static void runJob(String[] params, String jobPath) { try { KettleEnvironment.init(); // jobname 是Job脚本的路径及名称 JobMeta jobMeta = new JobMeta(jobPath, null); Job job = new Job(null, jobMeta); // 向Job 脚本传递参数,脚本中获取参数值:${参数名} // job.setVariable(paraname, paravalue); job.setVariable("id", params[0]); job.setVariable("content", params[1]); job.setVariable("file", params[2]); job.start(); job.waitUntilFinished(); if (job.getErrors() > 0) { throw new Exception( "There are errors during job exception!(执行job发生异常)"); } } catch (Exception e) { e.printStackTrace(); } }
调用服务器
1.服务器执行ktr文件(转换)
/** * 执行存储在数据库资源库中的转换 * * @Description: * @throws KettleException * @author Jeffy * @since:2016-9-23 */ public static void executeTrans(String transName) throws KettleException { //初始化kettle环境 KettleEnvironment.init(); //创建资源库对象,此时的对象还是一个空对象 KettleDatabaseRepository repository = new KettleDatabaseRepository(); //创建资源库数据库对象,类似我们在spoon里面创建资源库 // 数据库连接元对象(连接名称,不必与kettle中配置的保持一致:数据库类型:连接方式(kettle支持的连接方式):资源库IP:资源库实例名:资源库端口:资源库用户名:资源库用户密码) DatabaseMeta dataMeta = new DatabaseMeta("192.168.0.250", "Mysql", "Native(JDBC)", "192.168.0.250", "kettle-test", "3306", "root", "root"); //资源库元对象,名称参数,id参数,描述等可以随便定义 KettleDatabaseRepositoryMeta kettleDatabaseMeta = new KettleDatabaseRepositoryMeta("ETL", "ETL", "ETL description",dataMeta); //给资源库赋值 repository.init(kettleDatabaseMeta); //连接资源库 repository.connect("admin","admin"); //根据变量查找到模型所在的目录对象,此步骤很重要。 RepositoryDirectoryInterface directory = repository.findDirectory("/test1"); //创建ktr元对象 TransMeta transMeta = ((Repository) repository).loadTransformation(transName, directory, null, true, null ); //创建ktr Trans trans = new Trans(transMeta); //执行ktr trans.execute(null); //等待执行完毕 trans.waitUntilFinished(); if(trans.getErrors()>0) { System.err.println("Transformation run Failure!"); } else { System.out.println("Transformation run successfully!"); } }
2.调用服务器的job
public static void executeJob(String jobName) throws KettleException { try { //初始化kettle环境 KettleEnvironment.init(); //创建资源库对象,此时的对象还是一个空对象 KettleDatabaseRepository repository = new KettleDatabaseRepository(); //创建资源库数据库对象,类似我们在spoon里面创建资源库 // 数据库连接元对象(连接名称,不必与kettle中配置的保持一致:数据库类型:连接方式(kettle支持的连接方式):资源库IP:资源库实例名:资源库端口:资源库用户名:资源库用户密码) DatabaseMeta dataMeta = new DatabaseMeta("192.168.0.250", "Mysql", "Native(JDBC)", "192.168.0.250", "kettle-test", "3306", "root", "root"); //资源库元对象,名称参数,id参数,描述等可以随便定义 KettleDatabaseRepositoryMeta kettleDatabaseMeta = new KettleDatabaseRepositoryMeta("ETL", "ETL", "ETL description",dataMeta); //给资源库赋值 repository.init(kettleDatabaseMeta); //连接资源库 repository.connect("admin","admin"); //根据变量查找到模型所在的目录对象,此步骤很重要。 RepositoryDirectoryInterface directory = repository.findDirectory("/test1"); //创建job元对象 JobMeta jobMeta = ((Repository) repository).loadJob(jobName, directory, null, null ) ; //创建job Job job = new Job(repository,jobMeta); //执行job job.start(); //等待执行完毕 job.waitUntilFinished(); if (job.getErrors() > 0) { throw new RuntimeException( "There were errors during transformation execution."); } }catch(Exception e){ } }
阅读全文
0 0
- java实现kettle
- Kettle实现行转列2(Kettle实现)
- 通过java代码来调用kettle的简单实现
- kettle 循环实现方式
- kettle实现循环
- Kettle实现数据库迁移
- kettle实现数据转换
- Kettle调度实现
- Java kettle程序执行 kettle文件
- KETTLE JAVA API学习
- Kettle java调用
- Java集成kettle
- java调用Kettle总结
- Kettle java调用
- java kettle 初步
- java kettle v2
- java 集成kettle
- kettle 里面的xul实现
- Revit二次开发之Journal日志文档【比目鱼原创】
- idea搭建和部署maven项目
- snmp agent++
- JavaSE基础知识学习—泛型
- 手把手教你做爬虫---基于NodeJs
- java实现kettle
- 深度学习系列(1):感知机
- 各种Druid详细配置讲解
- window家族的关系
- Bmob小程序模板消息
- 连胜--小程序中滚动条的使用,wx.pageScrollTo和<scroll-view>的对比
- 共同学习Java源代码-数据结构-HashMap(十七)
- 算法笔记2
- ZooKeeper之Java客户端API使用—创建会话。