zoukankan      html  css  js  c++  java
  • kettle利用触发器实现数据同步

    2016年8月17日

    一、目的
    通过触发器实现数据同步
    二、思路
    1.在数据库需要同步的源表中建立一个insert触发器,当有新数据插入时,会自动将新插入数据的主键记录到临时表temp中。(当然也可以记录多个字段)
    2.比较临时表temp和源表中的数据,匹配两个表中的主键值是否一致(也可以匹配多个字段),将符合条件的源表数据筛选出来,同步到目标表。
    3.当同步完数据之后,清空temp表中的数据,进行下一轮同步。
    三、优缺点
    1.优点
    避免对相同数据的扫描,减少同步时间。
    2.缺点
    只在本地测试,未能在大数据环境下实施,不知道其稳定性如何。
    四、环境配置
    1.在源数据库中建立临时表temp
    create table temp
    (temp_id int primary key auto_increment,zhang_id int);
    2.在源数据库中为源表创建触发器(如表zhang)
    create trigger trig_zhang_insert
    after insert
    on zhang
    for each row
    insert into temp values (null,new.id);
    五、具体步骤
    1.主流程图设计

    2.“数据同步”模块设计
    (1)“数据同步”作业设计

    (2)“源表与目标表转换”设计

     

    注意:对表输出控件的“定义错误处理”配置如下

    当源表zhang无新数据插入,触发器没有往temp表中写入数据,进行“temp表与源表比较”操作时会报错,流程没办法继续进行。配置“定义错误处理”可以避免这种情况。
    3.“善后工作”模块设计
    (1)“善后工作”作业设计

    (2)“删除temp表数据”设计

     

  • 相关阅读:
    error: device not found
    xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Deve
    联想X系列服务器
    华为服务器
    linux db2升级
    aix6.1升级openssh&&openssl
    upgrading mysql: error: 1102: Incorrect database name
    linux7配置yum网络源
    How to install fixpack on DB2
    mysql 表空间管理
  • 原文地址:https://www.cnblogs.com/kongxc/p/6707366.html
Copyright © 2011-2022 走看看