目前正在做的项目需要用将主业务库的部分数据同步出去以作统计用,为了保持数据实时同步需要定时执行同步操作。同步工具运用了比较流行的ETL工具kettle,首先我们在kettle界面工具Spoon中设计好同步文件如 studentTableETL.ktr,然后在web项目通过quartz定时调用studentTableETL.ktr即可。

1、以下是pom.xml中的依赖包 pentaho.kettlekettle-core3.2.0-GApentaho.kettlekettle-db3.2.0-GApentaho.kettlekettle-engine3.2.0-GApentaho.kettlekettle-ui-swt3.2.0-GApentaho.kettlekettle-vfs3.2.0-GAognlognl3.0.3org.quartz-schedulerquartzlog4jlog4jcommons-digestercommons-digester1.8

2、spring-quartz.xml

true

0 59 23 * * ?

kettleEtl

3、KettleLoader.java

package com.anyuan.edu.sas.service; import org.pentaho.di.core.exception.KettleException;

import org.pentaho.di.core.util.EnvUtil;

import org.pentaho.di.trans.StepLoader;

import org.pentaho.di.trans.Trans;

import org.pentaho.di.trans.TransMeta;

/**

kettle文件加载类

*/ public class KettleLoader{ public void kettleEtl() throws KettleException { String[] etlTables = {"classroomTableETL","studentTableETL","courseTableETL","chapterTableETL"}; int monitor = 0; try{ for(int i=0;i

callNativeTransWithParam(filename); } }catch(Exception e){ System.out.println(etlTables[monitor]+" failed");

} System.out.println("ok");

}

/**

* 调用本地的转换文件(带参数)

*

* @Description:

* [@param](https://my.oschina.net/u/2303379) transFileName

* [@throws](https://my.oschina.net/throws) KettleException

*/

public static void callNativeTransWithParam(String transFileName) throws KettleException {

// 初始化

EnvUtil.environmentInit();

StepLoader.init();

// 转换元对象

TransMeta transMeta = new TransMeta(transFileName);

// 转换

Trans trans = new Trans(transMeta);

String[] params = {};

// 执行转换

trans.execute(params);

// 等待转换执行结束

trans.waitUntilFinished();

}

}

我这里每次执行4个ktr文件,所以定义了一个数组String[] etlTables = {"classroomTableETL","studentTableETL","courseTableETL","chapterTableETL"};然后循环调用 如果只有一个文件的话,就不需要这个循环了。

定时器 java qua_kettle整合到web项目并运用quartz实现定时任务相关推荐

  1. JavaWeb以Maven整合Mybatis报错java.lang.NoClassDefFoundError(Web项目未能完全加载Maven下的依赖)

    问题描述 为完成学校课程一个javaweb的demo,想着对数据库的访问能够更加简洁,所以用了Mybatis.因为之前有过Springboot整合Mybatis经验,所以本以为事情会简单.在Junit ...

  2. (015)java后台开发之web项目中如何添加jar包和删除jar包

    创建一个java web项目后,创建一个index.jsp运行起来后,就发布到服务器上!最简单的java web工程就算完成了!但是往往我们的工程比较复杂,经常会用一些第三方的库(jar)来帮助我们方 ...

  3. java web项目在双机下的定时任务

    问题:一个项目,部署在多台服务器上,里面有一个定时任务需要执行,会重复执行多次. 解决方法: 方案一:项目中配置一个运行定时任务的主机名,然后在启动定时任务的方法内部,获取当前运行的服务器的主机名,与 ...

  4. 使用H5Stream实现rtsp流播放,并整合到web项目中

    更新!!!这篇博客最早是工作要求实现rtsp流媒体播放,所以做了一个demo测试下,后来又不需要做这个功能了,遂没有再深入研究,只记录了之前的学习结果,最近发现有小伙伴留言说流媒体无法播放,我看了下, ...

  5. 创建java ee_eclipse Java EE安装和web项目的创建

    三.过程中遇到的几个问题: 1.找不到项目导航树project explorer 解决方法: window -> show view -> project explorer 2.在新建的工 ...

  6. java错误页面_Java web 项目关于错误页面的处理

    第一步:你需要建立一个显示错误信息的jsp页面,内容如下: 系统执行发生错误 系统执行发生错误,信息描述如下: 错误状态代码是:$ {pageContext.errorData.statusCode} ...

  7. saas java框架_XMReport-提供web项目Java套打解决方案

    简介 XMReport是国内首款支持在线编辑,维护的控件式报表产品.XMReport报表产品分为设计器与引擎两个部分,其中报表设计器是完全基于HTML5技术,提供优秀跨平台的支持,用户无需安装客户端或 ...

  8. java webinf lib jar_java web项目中classes文件夹下的class和WEB-INF/lib中jar里的class文件加载顺序...

    如果是发布到weblogic的话,可以在WebContent\WEB-INF\weblogic.xml里面配置. 参考配置如下: xmlns:xsi="http://www.w3.org/2 ...

  9. 前端接收java验证码_在Web项目中手机短信验证码实现的全过程记录

    前言 最近在做远程智能水表管理系统这个过程有一个功能是在注册页面可以使用手机注册,找了许久才大致了解了手机验证码实现流程,今天在此和大家分享一下.下面话不多说了,来一起看看详细的介绍吧. 短信验证码实 ...

最新文章

  1. uboot环境变量-带分号的环境变量
  2. 第十六届全国大学生智能车竞赛创意组-讯飞智慧餐厅
  3. python string库_《python标准库》--string
  4. android线性布局的实例
  5. 结构型模式:代理模式
  6. 详解静态路由(入门类)
  7. oracle 保留一个记录吗,笔记:Oracle查询重复数据并删除,只保留一条记录
  8. go连接mysql集群_什么是MySQL集群-Go语言中文社区
  9. Git 仓库代码迁移步骤记录
  10. Linux fast open,Linux内核3.7 TCP Fast Open验证实例
  11. 一步步实现SDDC--多角色服务器部署
  12. 读后感Java多线程编程核心技术十二
  13. Github Action 指南
  14. 第三方登录微信登录流程
  15. JPG如何免费压缩大小并且保证清晰度
  16. 点击箭头 切图 html,css写箭头
  17. Lan9252-FPGA调试笔记
  18. (初学者)关于C语言中退格键(\b)的初步了解
  19. 关于前端接口报错500原因
  20. 2022年第五届中青杯数学建模-时间序列预测模型及基于多特征条件下的决策优化

热门文章

  1. poky linux初探 -- 添加自己的内核食谱
  2. 网页+微信小程序UI设计及前端开发(第二周)
  3. 学习数据数据结构的意义
  4. C/C++之cpp变exe
  5. Android黑科技 自动点击
  6. JLX256128液晶屏字符显示驱动代码
  7. CVPR 2017:Interspeices Knowledge Transfer for Facial KeyPoint Detection(跨物种脸部关键点检测知识迁移)
  8. android卡在gradle,Android Studio打开新项目卡在Gradle的问题
  9. Mysql数据库(关系型与非关系型数据库)
  10. 锐捷认证客户端——多网卡限制破解