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

2 篇文章 0 订阅
1 篇文章 1 订阅

创建两个表:

用户为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  date  primary Key,    --最近一次抽取表的时间

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

 

ruzhib数据为

 

 

开始了,进入主题:

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

详细步骤:

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

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

详细步骤:

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

再将其插入到times表里

 

 

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


详细步骤:start用于开始,

在第二个控件转化里面


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

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


最后完成


步骤就这些

咱们测试一下

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

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

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

 

 

然后咱们再试一下

 

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

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

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

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

 

时间也被插入更新了进来

 

 

 

 

O k

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


  • 14
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值