java 集成kettle
2017-07-22 11:02
218 查看
java集成kettle 示例:
方案:
启用定时任务,调用PDI生成的trans.ktr文件
maven仓库地址:http://maven-repository.com/artifact/pentaho-kettle
DEMO:
异常问题解决:
项目中依赖传递排除:
顶0
踩0
方案:
启用定时任务,调用PDI生成的trans.ktr文件
maven仓库地址:http://maven-repository.com/artifact/pentaho-kettle
<repository> <id>pentaho-releases</id> <url>http://repository.pentaho.org/artifactory/repo/</url> </repository> |
<kettle.version>6.1.0.1-196</kettle.version> |
<dependency> [align=left] <groupId>pentaho-kettle</groupId> [/align] [align=left] <artifactId>kettle-core</artifactId> [/align] [align=left] <version>${kettle.version}</version> [/align] [align=left] </dependency> [/align] [align=left] <dependency> [/align] [align=left] <groupId>com.verhas</groupId> [/align] [align=left] <artifactId>license3j</artifactId> [/align] [align=left] <version>1.0.7 </version> [/align] [align=left] </dependency> [/align] [align=left] <dependency> [/align] [align=left] <groupId>pentaho-kettle</groupId> [/align] [align=left] <artifactId>kettle-dbdialog</artifactId> [/align] [align=left] <version>${kettle.version}</version> [/align] [align=left] </dependency> [/align] [align=left] <dependency> [/align] [align=left] <groupId>pentaho-kettle</groupId> [/align] [align=left] <artifactId>kettle-engine</artifactId> [/align] [align=left] <version>${kettle.version}</version> [/align] [align=left] </dependency> [/align] [align=left] <dependency> [/align] [align=left] <groupId>pentaho</groupId> [/align] [align=left] <artifactId>metastore</artifactId> [/align] <version>${kettle.version}</version> </dependency> [align=left] <dependency>[/align] [align=left] <groupId>com.google.guava</groupId>[/align] [align=left] <artifactId>guava</artifactId>[/align] [align=left] <version>19.0</version>[/align] </dependency> </dependencies> |
211-whicoDB-in_student(table) 插入更新到 localhost-whicoDB-in_student(table) 的trans文件 |
[align=left]import org.pentaho.di.core.KettleEnvironment;[/align] [align=left]import org.pentaho.di.core.util.EnvUtil;[/align] [align=left]import org.pentaho.di.job.Job;[/align] [align=left]import org.pentaho.di.job.JobMeta;[/align] [align=left]import org.pentaho.di.trans.Trans;[/align] [align=left]import org.pentaho.di.trans.TransMeta;[/align] [align=left]/**[/align] [align=left] * kettle version 6.1.0.1-196[/align] [align=left] * @author jiangnan[/align] [align=left] *[/align] [align=left] */[/align] public class KettleUtil { [align=left] [/align] [align=left] /**[/align] [align=left] * 调用trans文件[/align] [align=left] * @param transFileName[/align] [align=left] * @throws Exception[/align] [align=left] */[/align] [align=left] public static void callNativeTrans(String transFileName) throws Exception{[/align] [align=left] callNativeTransWithParams(null, transFileName);[/align] [align=left] }[/align] [align=left] [/align] [align=left] /**[/align] [align=left] * 调用trans文件 带参数的[/align] [align=left] * @param params[/align] [align=left] * @param transFileName[/align] [align=left] * @throws Exception[/align] [align=left] */[/align] [align=left] public static void callNativeTransWithParams(String[] params ,String transFileName) throws Exception{[/align] [align=left] // 初始化 [/align] [align=left] KettleEnvironment.init();[/align] [align=left] EnvUtil.environmentInit(); [/align] [align=left] TransMeta transMeta = new TransMeta(transFileName);[/align] [align=left] //转换[/align] [align=left] Trans trans = new Trans(transMeta); [/align] [align=left] //执行[/align] [align=left] trans.execute(params);[/align] [align=left] //等待结束[/align] [align=left] trans.waitUntilFinished();[/align] [align=left] //抛出异常 [/align] if(trans.getErrors() > 0){ throw new Exception("There are errors during transformation exception!(传输过程中发生异常)"); [align=left] } [/align] [align=left] }[/align] [align=left] [/align] [align=left] /**[/align] [align=left] * 调用job文件[/align] [align=left] * @param jobName[/align] [align=left] * @throws Exception[/align] [align=left] */[/align] [align=left] public static void callNativeJob(String jobName) throws Exception{[/align] [align=left] // 初始化 [/align] [align=left] KettleEnvironment.init();[/align] [align=left] [/align] [align=left] JobMeta jobMeta = new JobMeta(jobName,null);[/align] [align=left] Job job = new Job(null, jobMeta); [/align] [align=left] //向Job 脚本传递参数,脚本中获取参数值:${参数名} [/align] [align=left] //job.setVariable(paraname, paravalue); [/align] [align=left] job.start(); [/align] [align=left] job.waitUntilFinished(); [/align] if (job.getErrors() > 0) { throw new Exception("There are errors during job exception!(执行job发生异常)"); [align=left] } [/align] } |
[align=left]import org.apache.logging.log4j.LogManager;[/align] [align=left]import org.apache.logging.log4j.Logger;[/align] import com.stech.business.util.KettleUtil; public class kettleTaskJob { private static Logger LOGGER = LogManager.getLogger(kettleTaskJob.class.getName()); public void run() throws Exception { [align=left] LOGGER.info("*****kettle定时任务运行开始******");[/align] String transFileName = "D:/work/kettle/trans.ktr"; KettleUtil.callNativeTrans(transFileName); LOGGER.info("*****kettle定时任务运行结束******"); } [align=left] [/align] public static void main(String[] args) throws Exception { [align=left] kettleTaskJob job = new kettleTaskJob();[/align] [align=left] job.run();[/align] [align=left] }[/align] } |
2016-11-15 11:47:33,856 INFO (VfsLog.java:136) - Using "C:\Users\jiangnan\AppData\Local\Temp\vfs_cache" as temporary files store. [align=left]2016/11/15 11:47:34 - trans - 为了转换解除补丁开始 [trans][/align] [align=left]2016/11/15 11:47:37 - 表输入.0 - Finished reading query, closing connection.[/align] [align=left]2016/11/15 11:47:37 - 表输入.0 - 完成处理 (I=47, O=0, R=0, W=47, U=0, E=0)[/align] 2016/11/15 11:47:38 - 插入 / 更新.0 - 完成处理 (I=47, O=47, R=47, W=47, U=0, E=0) |
2016-11-15 13:30:41,438 INFO (VfsLog.java:136) - Using "C:\Users\jiangnan\AppData\Local\Temp\vfs_cache" as temporary files store. [align=left]Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Suppliers.supplierFunction()Lcom/google/common/base/Function;[/align] [align=left] at org.pentaho.di.core.extension.ExtensionPointMap.get(ExtensionPointMap.java:120)[/align] [align=left] at org.pentaho.di.core.extension.ExtensionPointHandler.callExtensionPoint(ExtensionPointHandler.java:45)[/align] [align=left] at org.pentaho.di.trans.TransMeta.loadXML(TransMeta.java:3368)[/align] [align=left] at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2732)[/align] [align=left] at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2684)[/align] [align=left] at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2661)[/align] [align=left] at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2641)[/align] [align=left] at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2606)[/align] [align=left] at org.pentaho.di.trans.TransMeta.<init>(TransMeta.java:2569)[/align] [align=left] at com.stech.business.util.KettleUtil.callNativeTrans(KettleUtil.java:21)[/align] [align=left] at com.stech.business.quartz.kettleTaskJob.run(kettleTaskJob.java:13)[/align] at com.stech.business.quartz.kettleTaskJob.main(kettleTaskJob.java:19) |
顶0
踩0
相关文章推荐
- Kettle与Java集成——Java代码调取运行资源库的Transformation
- Kettle与Java集成——Java代码调取运行资源库的Transformation
- Etl工具之Kettle与java集成二
- Kettle与Java集成——Java代码调取运行资源库的Transformation
- Java集成kettle调用trans文件
- Kettle与Java集成——Java代码调取运行资源库的Transformation
- java应用程序中集成Kettle
- Kettle与Java集成――Java代码调取运行资源库的Transformation
- java与kettle的集成DEMO
- 将iObjects java API帮助集成到eclipse开发环境中
- idea/ecipse中使用maven集成springmvc相关jar包时候,出错:java.lang.ClassNotFoundException: org.springframework.web.
- Java Persistence with MyBatis 3(中文版) 第五章 与Spring集成
- JAVA学习2:Eclipse集成Maven
- Eclipse集成javah
- 在Web中集成Kettle
- multicache4j - 为Java集成各种cache组件和ehcache
- myeclipse 集成fatjar 将java项目打包成jar文件
- java集成开发环境构建
- Java CXF WebService框架 集成Spring3 自定义拦截器进行头验证
- Flash Builder4.5 + BladeDS + Java 集成实例