zoukankan      html  css  js  c++  java
  • KETTLE4个工作中有用的复杂实例--2、两表数据比较,循环取数据,比较后自动同步(部门、单位数据同步)

     

    KETTLE4个工作中有用的复杂实例--2、两表数据比较,比较后自动同步(部门、单位数据同步)

    二、两表数据比较核对,核对后自动同步至目标数据表

    目标:比较t_bm表的数据和t_bm_target表的数据,以t_bm表为准,往t_bm_target中进行数据的自动同步;

    1、为了给大家更直观的展示,【大喇叭玩转数据库】首先在数据库创建2张表,表结构如下:

    • t_bm 部门单位表;
    • t_bm_target 部门单位目标表;
     1 -- Create table
     2 create table T_BM
     3 (
     4   organize_code VARCHAR2(200),  --单位代码
     5   organize_name VARCHAR2(200),  --单位名称
     6   cjsj          DATE   --创建时间
     7 )
     8 tablespace ZFQLC
     9   pctfree 10
    10   initrans 1
    11   maxtrans 255
    12   storage
    13   (
    14     initial 64K
    15     next 1M
    16     minextents 1
    17     maxextents unlimited
    18   );
     1 -- Create table
     2 create table T_BM_TARGET
     3 (
     4   organize_code VARCHAR2(200),  --单位代码
     5   organize_name VARCHAR2(200),  --单位名称
     6   cjsj          DATE  --创建时间
     7 )
     8 tablespace ZFQLC
     9   pctfree 10
    10   initrans 1
    11   maxtrans 255
    12   storage
    13   (
    14     initial 64K
    15     next 1M
    16     minextents 1
    17     maxextents unlimited
    18   );

    其中t_bm(单位表)的数据如下图:

     t_bm_target(单位目标表)的数据如下图:

    2、作业整体流程:

     需要用到1个作业和4个转换来操作2张表。

    下图为整个作业的流程:

     上面流程图就是整个作业的流程,用到了3个转换和2个JS脚本,来实现该需求。

    3、获取机构信息数据

     3.1获取源数据如下图,sql语句必须要按照机构代码进行排序

     

     3.2获取源数据如下图,sql语句必须要按照机构代码进行排序

     3.3 将3.1和3.2的步骤通过hops连线,连接记录集连接控件

    选择步骤1和步骤2,连接类型left outer,以步骤1的源表数据为基础创建连接,连接字段选择organize_code字段。

     

     3.4 设置条件过滤,如果organize_code为空的话,则什么都不做,不为空的话,放入数据流中

     3.5 字段选择,将不为空的数据放到字段选择中,并复制记录到结果,供下一个转换步骤使用

     3.6 JavaScript脚本验证,获取数据并设置到变量中

    3.7 检验字段的值,获取数据并设置到变量中

     

    3.8 计数器累加,获取i中的变量,并将结果放入detail明细中

    3.9 机构同步处理流程

     
     3.9.1 机构同步处理-获取数据,将上个步骤的detail数据放入变量中

     3.9.2 sql脚本 执行插入t_bm_target表

     注意:因某些限制,最新源代码和后续通用配置实现数据抽取 已放置在笔者公众号上,请关注微信公众号: 大喇叭学数据库, 回复关键字:【实例】,获取kettle安装程序和运行实例(表结构和kjb、ktr文件)


    3.10 执行结果

  • 相关阅读:
    HUST 1372 marshmallow
    HUST 1371 Emergency relief
    CodeForces 629D Babaei and Birthday Cake
    CodeForces 629C Famil Door and Brackets
    ZOJ 3872 Beauty of Array
    ZOJ 3870 Team Formation
    HDU 5631 Rikka with Graph
    HDU 5630 Rikka with Chess
    CodeForces 626D Jerry's Protest
    【POJ 1964】 City Game
  • 原文地址:https://www.cnblogs.com/dalaba/p/12126206.html
Copyright © 2011-2022 走看看