• kettle多个表一起迁移-通过配置文件配置需要同步的字段,非全字段同步


    kettle多个表一起迁移-通过配置文件配置需要同步的字段,非全字段同步

    欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「999」获取本例源文件, 免费领取全网最热的kettle实战视频教程 http://www.javaman.cn/kettle/kettle-column

    本文主要讲解将列配置在excel配置文件中,只同步所需要的字段,不需要进行表的全部字段同步!!

    一、创建如下4张表,kettle结尾的表为目标表,非kettle结尾的表为源表

    t_user2和t_user3两张为待抽取的源数据表;t_user2_kettle和t_user3_kettle为目标表

    -- Create table
    create table T_USER_2
    (
      id       NUMBER(5),
      name     NVARCHAR2(20),
      password NVARCHAR2(30),
      sex      CHAR(2),
      gxsj     DATE
    )
    tablespace TEST
      pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );
      
      -- Create table
    create table T_USER_2_KETTLE
    (
      id       NUMBER(5),
      name     NVARCHAR2(20),
      password NVARCHAR2(30),
      sex      CHAR(2),
      gxsj     DATE
    )
    tablespace TEST
      pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );
      -- Create table
    create table T_USER_3
    (
      id       NUMBER(5),
      name     NVARCHAR2(20),
      password NVARCHAR2(30),
      sex      CHAR(2),
      gxsj     DATE
    )
    tablespace TEST
      pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );
      
      -- Create table
    create table T_USER_3_KETTLE
    (
      id       NUMBER(5),
      name     NVARCHAR2(20),
      password NVARCHAR2(30),
      sex      CHAR(2),
      gxsj     DATE
    )
    tablespace TEST
      pctfree 10
      initrans 1
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );
    

    二、整个作业流程如下图所示:

    下图为整个作业的流程:包含start、获取文件和循环处理表数据的作业流程

    作业流程

    三、获取文件.ktr

    该转换包含两个控件:excel输入控件和复制记录到结果控件,将excel的数据读取出来,放入复制记录到结果中

    1、获取excel文件,复制记录到结果中去

    读取excel

    2、excel表的第一列为表头:souce代表需要同步的表,target代表目标表,column代表同步的字段;第2行和第3行为需要同步的表数据;

    设置变量

    四、循环处理.kjb

    循环处理的作业流程如下:包含获取表名和插入表两个转换;将步骤三的表名获取出来放入循环处理.kjb的步骤中

    此处需要注意鼠标左键双击循环处理.kjb,进入【高级】选项,勾选上【对每个输入执行一次】的选项,点击确定

    ![插入表image

    1、点击鼠标右键,进入作业内部,可以看到作业包含两个转换,如下图

    image

    2、鼠标左键选中2-1获取表名,鼠标右键进入具体的步骤控件中,下面包含两个控件:从结果获取记录和设置变量。
    将获取第一步的表名,设置到source、target和column变量中

    设置变量

    变量

    2、2-2插入表.ktr

    整个插入表的转换如下图,包含获取源数据同步数据(实际是表输入)和目标数据插入(表输出),两个控件

    目标表插入

    2.1、将变量替换到sql语句当中

    输入下图中的sql语句,勾选上替换sql语句里的变量,点击确定

    该步骤是将上一步的结果放入变量中,进行变量替换,即达到读取配置文件的目的

    运行

    2.2、双击鼠标左键,进入目标数据库数据插入控件内部,将变量替换到目标表当中,下图中的{target}为步骤三中获取到的target,用花括号扩起来,否则不起作用,点击确定进行保存

    设置目标表

    2.3、运行整个点击执行,查看运行结果

    运行结果

    运行结果

    3、运行结果查看

    相应的数据同步到具体的表中,根据excel文件的配置可以看到user2和user3两张表配置的字段不同,同步到目标表的数据就不相同

    image
    image

    根据上述表查看,发现所选字段数据已经同步到表中,该表并非全表同步!

  • 相关阅读:
    c++ --> 虚函数
    Algorithm --> 全排列
    Algorithm --> 矩阵链乘法
    STL --> set用法
    STL --> list用法
    Algorithm --> 最长公共子序列(LCS)
    Zookeeper使用实例——服务节点管理
    Zookeeper使用实例——分布式共享锁
    Zookeeper初探
    Java设计模式应用——备忘录模式
  • 原文地址:https://www.cnblogs.com/dalaba/p/14813549.html
Copyright © 2020-2023  润新知