kettle从数据库添加要求指定的日期内的数据,并且时间实现自增模式

首先我们有三张表

事务表1
EVENT_TEMP01  

(ID,CODE,DESCRIPTION,start_time)

事务表2
EVENT_TEMP02   

(ID,CODE,DESCRIPTION,start_time)

时间表
TIME_TEMP01

(ID,start_time,end_time)

三张表

根据时间表的字段的开始时间,与最终时间获取事务表1的录入时间的这短时间的数据,并且这个任务执行完成之后,数据库时间表的内容自动更新为第二天的时间

先创建作业,,

spoon的左上角的新建

然后再打开一个sql文本

我们在sql里面写进去我需要的内容

insert into EVENT_TEMP02(ID,CODE,DESCRIPTION,start_time)
select a.ID,a.CODE,a.DESCRIPTION,a.start_time FROM EVENT_TEMP01 a,TIME_TEMP01 b where a.start_time >= b.start_time and a.start_time <b.end_time;

这个主要就是判断事务表1 与时间表规定时间之内的的数据,并且将查询出来的数据再次加入到事务表2中。

这个表,两表结构都是一样的,所以可以直接传入

这个就是简单的判断并传输,之后我们这个通过之后,我们再完成这个时间的自动更新

我是通过转换这个方式来完成的,主要就是直接更新,运行一次就直接去更新时间

转换就是直接通过这个时间表,来进行获取字段,

新建一个转化就是表的输入

这里我用的是时间表,之后我在用sql脚本来做这个更新同样是sql

update TIME_TEMP01 set start_time='?';
update TIME_TEMP01 set end_time=DATE_ADD(end_time,INTERVAL 1 DAY)

如上是sql语句,注意我在那个地方打的勾,执行每一行与变量替换,我这里需要的是end_time 的字段,

这个上面的start直接获取的就是end_time,这样也方便与第二条语句的更改

最后把这个转换放在job里面,新添加一个开始和结束,先sql文本再转换

执行完成之后我们看我之前的数据是30行

图上是我们的表2,我表1的数据是6条

时间是

现在开始执行

现在我们的数据是

36行,说明成功了,

本人是初学者,有很多地方想的不是很周到,所以请各位前辈多担待!

猜你喜欢

转载自blog.csdn.net/Mr_Tanga/article/details/81084234