码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2021-06-02 11:15:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:循环   同步数据   man   执行   source   src   表头   tar   转换   

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文件,复制记录到结果中去

技术图片

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

技术图片

四、循环处理.kjb

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

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

![插入表技术图片

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

技术图片

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两张表配置的字段不同,同步到目标表的数据就不相同

技术图片
技术图片

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

获取此kettle示例,关注下面公众号,回复【999】,祝同学们学习愉快~~

技术图片

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

标签:循环   同步数据   man   执行   source   src   表头   tar   转换   

原文地址:https://www.cnblogs.com/dalaba/p/14812917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!