增量转换 oracle到MySQL

一:增量转换: 
 
前提:要实现增量更新的前提必须是原表必须要有一个时间字段,然后目标表根据这个时间字段来做查询和更新
大致思路:get_systime这个输入得到实时动态的当前时间,然后通过更新来动态同步uptime 这张表的modifytime属性,uptime表需
要自己建立,并且要插入数值,否则不能循环,{表的结构:create table UPTIME   modifytime DATE,    name       VARCHAR2(40)  )   }      get_time 这个输入  是要得到uptime表的最新的时间这个属性,get_value这个输入就是说要选择要同步到mysql的表的内容,in&up_mysql这个插入或更新是和目标mysql 数据库联系起来的, 

get_time 里面sql :select modifytime from uptime where name='test'                           #这里的test是你所要同步的表的所有者,
get_systime  里面sql : SELECT sysdate,'test' name from dual
更新里面内容 如下图,目标表就是要更新的表,更新字段下的流里的字段就是就是前面一个输入里的表的一个字段,这里使用是前面得到的sysdate来更新表UPTIME的MODIFYTIME字段值,
get_value里面:  
SELECT
  ID as "featureId"
, KEY_NAME as "featureName"
, CLASSIFY_ID as "ctgId"
, null as "description"
, sysdate as "syncTime"
, 1 as "langType"
, ORDER_NO as "sort"
FROM TEST.TD_ATTRIBUTE_KEY where modify_time>?                                                  ##?表示从上一个输入来取值。

in&up_mysql这个插入或更新   获取字段   就会显示你在目标mysql数据库里要同步的表的字段,这里选择一个属性和选择三个属性的区别是:选择一个就是在插入或更新时,只对比这一个属性值,相同则不会插入或更新,反之,插入更行,如果选择三个属性,就会比较这三个属性值,都相同才不插入更行,要是有一个不同,就会更新这行数据,所以你要想让源库oracle 和目标库MYsql 某个表的数据完全一样,那就应该把所有的字段都选择上,

注意:1.如果在运行转换的时候,说无法打开转换,那可能是由于长时间不运行这个转换,导致虽然tools里显示资源库连接正常但是实际上已经失效,所以你只要断开重连即可,这里所说的资源库是指通过该数据库连接直接在数据库里面创建 kettle 表,表里面记录着你所做的任何保存过的记录以及转换和任务。2插入和更新  与 输出的区别 :前者能更新,后者不能更新,只能按条件插入,  3.oracle 和mysql 数据类型的差别:

使用技巧:如果一个服务器上有多个数据库,那么在做DB连接的时候,可以直接用数据库复制,然后再在复制品上直接改就行,
在做转换的时候也可以直接把已经做好的转换以不同名称保存转换(可以理解为复制了一个) ,然后改相应的表名,用户名,即可,





 






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29654823/viewspace-1435463/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29654823/viewspace-1435463/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值