- 浏览: 600045 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Java执行本地ktr文件和kjb文件
kjb文件中所用到的ktr文件必须与kjb文件放置在一起
注意事项:任务和转换要存成文件格式,任务中引用的转换也要是文件格式,否则就都需要数据库支撑,数据库方法调用了。
package com.cmbchina.mms.comm.kettle; import java.io.File; import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.core.util.EnvUtil; import org.pentaho.di.job.Job; import org.pentaho.di.job.JobMeta; import org.pentaho.di.repository.RepositoryDirectoryInterface; import org.pentaho.di.repository.kdr.KettleDatabaseRepository; import org.pentaho.di.repository.kdr.KettleDatabaseRepositoryMeta; import org.pentaho.di.trans.Trans; import org.pentaho.di.trans.TransMeta; /** * @author: * @TODO:Jave调用Kettle案例 */ public class KettleUtil { private KettleUtil() { }; /** * @author: * @TODO:运行本地ktr文件 */ @SuppressWarnings("all") public static boolean runTransformation(String filename) { boolean flag = false; try { // 初始化任务 KettleEnvironment.init(); EnvUtil.environmentInit(); TransMeta transMeta = new TransMeta(filename); transMeta.setCapturingStepPerformanceSnapShots(true); Trans trans = new Trans(transMeta); trans.setMonitored(true); trans.setInitializing(true); trans.setPreparing(true); trans.setRunning(true); trans.setSafeModeEnabled(true); // 设置参数 在kettle文件中sql语句的设置 SELECT * FROM xx where xx=${stnlevel} // sql参数必须一一对应 trans.setVariable("stnlevel", "2"); trans.execute(null); // 等待转换执行结束 trans.waitUntilFinished(); flag = true; } catch (KettleException e) { System.out.println(e); } return flag; } /** * @author: * @TODO:运行本地kjb文件 */ @SuppressWarnings("all") public static boolean runJob(String filename) { boolean flag = false; try { KettleEnvironment.init(); // jobname 是Job脚本的路径及名称 JobMeta jobMeta = new JobMeta(filename, null); Job job = new Job(null, jobMeta); // job.setVariable("id", params[0]); // job.setVariable("dt", params[1]); job.start(); job.waitUntilFinished(); flag = true; } catch (KettleException e) { System.out.println(e); } return flag; } /** * @author: * @TODO:初始化运行环境 */ private static void initKettleEnvironment(boolean isWebProgram) throws KettleException { String user_dir = ""; String kettleHome = ""; if (isWebProgram) { user_dir = System.getProperty("user.dir"); kettleHome = "mms" + File.separator + "WEB-INF"; // Kettle初始化需要修改相应的配置路径 System.setProperty("user.dir", kettleHome); System.setProperty("KETTLE_HOME", kettleHome); } // 初始化环境 // 运行环境初始化(设置主目录、注册必须的插件等) KettleEnvironment.init(); if (isWebProgram) { System.setProperty("user.dir", user_dir); } } /** * @author: * @TODO:运行资源库ktr文件 */ @SuppressWarnings("all") public static boolean runRepoTransformation(String filename, boolean isWebProgram) { boolean flag = false; try { initKettleEnvironment(isWebProgram); // 创建资源库 对象 KettleDatabaseRepository repository = new KettleDatabaseRepository(); // 创建资源库所在的数据库 DatabaseMeta databaseMeta = new DatabaseMeta("", "oracle", "jdbc", "192.168.1.254", "ORCL", "1521", "cmbexam", "cmbexam"); // 选择资源库 找到对应的资源库名称 KettleDatabaseRepositoryMeta kettleDatabaseRepositoryMeta = new KettleDatabaseRepositoryMeta( "xx", "xx", "Transformation description", databaseMeta); repository.init(kettleDatabaseRepositoryMeta); // 连接资源库 资源库的用户名和密码 repository.connect("admin", "1"); RepositoryDirectoryInterface directoryInterface = repository .loadRepositoryDirectoryTree(); // 选择转换 TransMeta transMeta = repository.loadTransformation(filename, directoryInterface, null, true, null); Trans trans = new Trans(transMeta); trans.setVariable("stnlevel", "2"); trans.execute(null); // 等待直到数据结束 trans.waitUntilFinished(); if (trans.getErrors() > 0) { System.out.println("Transformation Error"); } else { System.out.println("Transformation Successful"); } flag = true; } catch (KettleException e) { System.out.println(e); } return flag; } public static void main(String[] args) throws KettleException { // runTransformation("switch.ktr"); // runJob("xx.kjb"); runRepoTransformation("XXXX", false); } }
kjb文件中所用到的ktr文件必须与kjb文件放置在一起
注意事项:任务和转换要存成文件格式,任务中引用的转换也要是文件格式,否则就都需要数据库支撑,数据库方法调用了。
发表评论
文章已被作者锁定,不允许评论。
-
Kettle 数据库连接采用文本文件进行配置
2016-01-29 10:29 1405kettle.properties文件中定义,文件的路径默认如 ... -
kettle 命令行运行作业(kitchen)和转换(pan)以及一路下来编写的例子
2015-11-17 10:34 6337Kettle好的论坛:http://www.flybi.net ... -
Kettle 合并记录和Merge Join组件实现数据增量迁移(数据同步比插入更新快
2015-09-24 14:40 2847该步骤用于将两个不同 ... -
Kettle 流查询,数据库查询和Merge Join的区别
2015-07-17 15:04 1661他们的主要区别: •流查询步骤只能进行等值查询,数据库查 ... -
Kettle 调用存储过程
2015-07-17 10:53 3955不带参数的存储过程可以直接使用“调用DB存储过程”控件,将存储 ... -
Kettle 参数、变量和全局变量(kettle.properties)使用
2015-07-16 15:52 7122有没有能统一管理一个参数,然后让所有的transformati ... -
Kettle注意事项
2015-07-16 15:32 2753注意事项 1)进入到Kettle部署的路径 ... -
Kettle初步学习
2015-07-16 15:29 530kettle是一个ETL(Extract, Transform ...
相关推荐
Java集成Kettle执行作业文件是将Java程序与Pentaho Data Integration(Kettle)工具结合,以实现数据处理和转换的自动化。Kettle是一款强大的ETL(Extract, Transform, Load)工具,它允许用户通过图形化界面创建...
然而,在Java应用程序中集成Kettle,需要将相关的Jar包添加到项目的类路径中,以便能够调用其API来执行工作流或转换。 首先,要理解Java与Kettle的集成,我们需要知道Kettle的主要组件。Kettle由以下几部分组成: ...
- Kettle提供了一个名为`trans-runtime.jar`的库,其中包含Java API,允许开发者在Java程序中执行Kettle转换和作业。这个API使得Java应用程序能够启动、监控和控制Kettle进程。 2. **依赖包解析**: - "4连接...
- 在Java代码中导入Kettle相关的类和API,创建并执行Kettle作业或转换。 - 构建和运行Java项目,Kettle的功能将被无缝集成到项目中。 以上就是关于"Kettle运行jar及其mvn脚本及配置文件.rar"的详细知识点,涵盖了...
1. `kettle-engine.jar`: 包含了执行Kettle转换和工作流的核心类。 2. `kettle-core.jar`: 提供了Kettle的基础功能和数据类型。 3. `kettle-api.jar`: 提供了API接口,使得外部程序可以与Kettle交互。 4. `kettle-...
此外,如果需要在Java应用中执行Kettle而不需要等待其完成(例如,作为异步任务),可以使用`Trans.execute()`和`Job.execute()`的非阻塞版本,这些版本接受一个回调接口,可以在Kettle流程完成后调用。 总之,Java...
Kettle提供了API和执行引擎,允许外部应用程序如Java程序与其交互。通过使用Kettle的`trans`和`job` API,可以启动、监控和控制转换(Transformation)和作业(Job)的执行。Kettle的核心类库包括`kettle-engine`和...
`KettleCreateJob.java` 文件很可能是用来创建Kettle作业的Java程序。在Kettle中,我们可以使用Java API来动态生成作业定义。这涉及到对`JobMeta`对象的实例化,设置作业属性,如名称、描述,然后添加作业步骤。每个...
它提供了执行Kettle作业和转换所需的基本功能。开发者可以通过这个库来创建、读取、修改和运行Kettle的工作流和转换,实现数据处理逻辑的编程控制。 其次,`db.jar`包含与各种数据库系统交互所需的驱动和工具。...
在Java环境中,我们可以利用Kettle的API来编写自定义程序,实现数据抽取、清洗、转换和加载到目标系统。 首先,了解Kettle API的基础知识至关重要。Kettle API是Kettle的核心组件之一,它提供了一系列接口和类,...
在java应用程序中集成kettle,需要在项目中引入执行kettle所需要的jar包,包括kettle对应的目录下找到的外部jar包。另外,将kettle目录下plugins目录拷贝到应用程序根目录下,这一点很重要,否则在用transformation...
Kettle(也称为Pentaho Data Integration或PDI)是一款强大的ETL(Extract, Transform, Load)工具,它允许用户通过图形化界面设计数据转换流程,并能被其他应用程序如Java程序调用执行这些流程。在本示例中,我们将...
在Java项目中集成Kettle,需要利用Kettle的库文件,也就是lib目录下的JAR文件,这些文件包含了Kettle运行所需的所有类和库。 Kettle作为一个开源的数据集成解决方案,提供了丰富的数据处理功能,如读取和写入各种...
它提供了一套全面的Java API,允许开发人员在Java应用程序中直接集成和操作Kettle的功能。这篇详细的知识点解释将深入探讨Kettle Java API的核心概念、使用场景和主要功能。 1. **Kettle Engine API**: Kettle...
Java调用Kettle是将Java程序与Pentaho Kettle(也称为Spoon)集成的过程,Kettle是一款强大的数据转换和ETL(提取、转换、加载)工具。在这个过程中,Java代码通过调用Kettle的相关API来执行转换或作业,实现数据...
此外,还需要引入Kettle的Java库文件。在本例中,我们首先初始化Kettle环境: ```java KettleEnvironment.init(); ``` 该行代码用于初始化Kettle运行时环境,包括设置线程上下文类加载器等操作,是调用Kettle功能...
Kettle提供了Carte Web Server程序,允许在多个服务器上运行Carte Web Server,在调用不同的ETL任务时,指定不同的目标服务器执行。Carte Web Server可以启动多个实例,每个实例可以接收多个ETL任务,并行执行任务,...
Java调用Kettle 5.3任务是一种在Java应用程序中集成Kettle(Pentaho Data Integration,也称为ETL工具)的方式,以便利用其强大的数据转换和加载功能。以下是对这个主题的详细解释: 1. **Kettle简介**:Kettle是一...
例如,可以使用Java的`ScheduledExecutorService`来定期执行Kettle作业,或者使用Apache Commons Daemon或Java的`java.lang.Runnable`接口将Java应用打包成服务,以便在后台持续运行。 总结一下,本示例中的"用java...
- Kettle安装:用户可以通过下载Kettle的发行包,解压并运行安装程序或直接使用二进制包来安装Kettle。 - 运行Spoon:Spoon是Kettle的图形化用户界面,用于创建、编辑、运行和监控转换和任务。 2. 关于资源库: ...