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表数据”设计

     

  • 相关阅读:
    C语言博客作业03--函数
    C博客作业02--循环结构
    C博客作业01--分支、顺序结构
    我的第一篇博客
    迭代购物车Dao&&GUI
    Java购物车大作业01
    DS-查找
    DS-图
    DS--树
    DS博客作业02--栈和队列
  • 原文地址:https://www.cnblogs.com/kongxc/p/6707366.html
Copyright © 2011-2022 走看看