zoukankan      html  css  js  c++  java
  • kettle高级教程-自动同步

     

    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 执行结果

  • 相关阅读:
    记一次Redis+Getshell经验分享
    冰蝎动态二进制加密WebShell基于流量侧检测方案
    ubuntu16下安装mongodb 3.6
    centos安装sass环境必看
    CLR 调试体系结构
    CLR 调试概述
    CLR Exception---E0434352
    关于System.MissingMethodException异常
    关于异常System.ArgumentException
    从.NET/CLR返回的hresult:0x8013XXXX的解释
  • 原文地址:https://www.cnblogs.com/dalaba/p/12162400.html
Copyright © 2011-2022 走看看