KETTLE4个工作中有用的复杂实例--1、数据定时自动(自动抽取)同步作业
2019-12-28 11:33
1721 查看
今天呕心沥血花了8个小时给大家带来kettle工作中最常见的四种复杂实例,90%的项目用到这4种实例都可以解决。
4种实例种还有2种通用kettle工具,使用这两种通用工具实例,可以直接修改相应的配置文件,完成数据的同步。
下面就一一给大家带来这4种实例,完全原创且可以拿来直接使用,废话不说,下面直接给大家带来具体实例:
KETTLE4个工作中有用的复杂实例--1、数据定时自动(自动抽取)同步作业
一、表数据自动同步
1、为了给大家更直观的展示,【大喇叭玩转数据库】首先在数据库创建4张表,表结构如下:
- t_student_kettle 学生数据源表;
- t_student_kettle_target 学生目标数据表;
- t_class 班级数据源表;
- t_class_target 班级 班级目标数据表;
- t_tbrz 同步日志表
--1、学生数据源表 -- Create table create table T_STUDENT_KETTLE ( id INTEGER, name VARCHAR2(2000), sex VARCHAR2(2000), age INTEGER, cjsj DATE, zhgxsj DATE default sysdate ) tablespace MYSPACE pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); --学生目标数据表 -- Create table create table T_STUDENT_KETTLE_TARGET ( id INTEGER, name VARCHAR2(2000), sex VARCHAR2(2000), age INTEGER, cjsj DATE, zhgxsj DATE default sysdate ) tablespace MYSPACE pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); --班级数据源表 -- Create table create table T_CLASS ( id NUMBER, class VARCHAR2(100), cjsj DATE, zhgxsj DATE ) tablespace MYSPACE pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited ); --班级目标数据表 -- Create table create table T_CLASS_TARGET ( id NUMBER, class VARCHAR2(100), cjsj DATE, zhgxsj DATE ) tablespace MYSPACE pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minextents 1 maxextents unlimited );
-- 同步日志表
-- Create table
create table T_TBRZ
(
id NUMBER, --id
tbcgsj DATE, --同步成功时间(结束时间)
tbkssj DATE, --同步开始时间
bm VARCHAR2(100), --同步表名
tbjg CHAR(1) --同步结果:1-成功;2-未成功
)
tablespace MYSPACE
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
--创建同步日志表的序列
create sequence SEQ_T_TBRZ
minvalue 1
maxvalue 999999999
start with 81
increment by 1
cache 20;
2、配置数据库连接地址,一般项目上会通过配置jndi数据源直接连接数据库,不在配置jdbc数据源了,有点类似于java的配置
INSERT INTO T_TBRZ (ID, KSSJ, TBCGSJ, BM, TBJG) VALUES (seq_t_tbrz.NEXTVAL, TO_DATE(SUBSTR('${V_SCTBCGSJ}', 0, 19), 'YYYY-MM-DD HH24:MI:SS'), SYSDATE, 'T_CLASS', '同步成功', '1'); DELETE FROM T_TBRZ WHERE TBJG = '1' AND BM = 'T_CLASS' AND ID IN (SELECT ID FROM (SELECT ID, ROWNUM RN FROM (SELECT ID FROM T_TBRZ WHERE TBJG = '1' AND BM = 'T_CLASS' ORDER BY ID DESC)) WHERE RN > 2); COMMIT;View Code
3)T_CLASS同步成功
如上图,T_CLASS同步步骤成功后,写入该成功步骤,提示成功。
5、T_STUDENT_KETTLE表的数据同步工作,如同T_CLASS表一样,存在3个转换步骤
5、运行转换,双击start,设置作业定时调度,设置完成后,运行转换
6、运行结果,运行成功和运行失败有不同的结果展示,可以根据此结果进行错误排除
注意:因某些限制,最新源代码和后续通用配置实现数据抽取 已放置在笔者公众号上,请关注微信公众号: 大喇叭学数据库, 回复关键字:【实例】,获取kettle安装程序和运行实例(表结构和kjb、ktr文件)。
------------恢复内容结束------------
相关文章推荐
- Kettle实现Oracle到Trafodion数据定时抽取
- spring 定时任务(自动同步数据)
- Kettle数据同步和抽取
- kettle——(2)抽取数据同步数据库
- kettle 创建任务定时执行数据抽取
- Kettle数据同步和抽取
- Synctoy定时自动同步数据
- C#调用Quartz实例代码 Quartz 定时作业
- Elasticsearch+Kettle spoon:实现索引自动按月创建,数据插入到指定路由
- ORALCE数据泵自动同步思路
- 使用kettle进行增量抽取数据
- 自动采集、同步写入,博为小帮软件机器人将工业自动化管理系统数据导入OA系统
- 实现“互联网+政务服务”平台与运政管理业务系统的数据自动流转,窗口工作人员不再手工二次录入--二次录入
- TimesTen 自动刷新的 cachegroup 数据不同步
- [导入]通过作业,定时同步两个数据库
- ehcache 分布式集群同步数据实例
- 定时执行rsync同步数据以及mysql备份
- 通过SSIS实现Oracle与Sqlserver数据库间的数据同步,并定时执行同步任务
- 数据库表结构自动修复和表数据同步原理分析
- 定时同步sql server数据到mysql