600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > kettle利用时间戳(timestamp)做增量抽取

kettle利用时间戳(timestamp)做增量抽取

时间:2018-08-04 07:52:44

相关推荐

kettle利用时间戳(timestamp)做增量抽取

创建两个表:

用户为Scott

create table zhiyuanb(填表日期 Date primary Key,

姓名Varchar2(10) Not Null,

年龄Number(3) ,

居住地Varchar2(100),

)

用户为hr

create table ruzhib_1 ( 填表日期 Date primary Key,

姓名 Varchar2(10)Not Null,

年龄Number(3) ,

居住地Varchar2(100),

)

把Scott用户下的ruzhib 的增量数据抽取到hr用户下面的ruzhib_1

首先先创建一个时间戳表:

create table times(

cqsj dateprimary Key, --最近一次抽取表的时间

xtsj date); --上次抽取作业的时间

ruzhib数据为

开始了,进入主题:

第一步先获取时间戳表里面的上次抽取的时间这里用的max(),再将上一步获取到的时间来取出上次抽取以后的数据,再将其插入到ruzhib_1里面

详细步骤:

查询的字段只需要弄一个主键就够了

再把抽取的时间和抽取时的系统时间记录到时间戳表内

详细步骤:

Max(填表日期)就可以获到本次增量抽取过来的最近时间,sysdate,来获取本次的操作时间

再将其插入到times表里

通过作业把他们组合到一块

详细步骤:start用于开始,

在第二个控件转化里面

把刚才做的那个抽取的转换填进去

第三个是把时间添加到times表里的转换

最后完成

步骤就这些

咱们测试一下

出现了一个错误,为什么呢,因为这是第一次创建表使用,times表里面还没有数据,所以会出错,咱们先向里面手动添加一条数据

InsertInto times Values(to_date('/1/1 12:23:00','yyyy/mm/ddhh24:mi:ss'),

to_date('/4/16 12:15:23','yyyy/mm/ddhh24:mi:ss'))

然后咱们再试一下

成功了,再测试一下,往zhiyuanb里插上两条记录再试试

InsertInto zhiyuanb Values(to_date('/2/3 12:56:00','yyyy/mm/ddhh24:mi:ss'),'玛丽',20,'北京');

InsertInto zhiyuanb Values(to_date('/3/4 09:31:02','yyyy/mm/ddhh24:mi:ss'),'张吉',23,'河南');

又成功了,所需的数据都被插入了进来

时间也被插入更新了进来

O k

自己独立编写,喜欢的能帮助你的给个小赞赞吧!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。