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文件,复制记录到结果中去
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
】,祝同学们学习愉快~~
标签:控件,同步,NVARCHAR2,配置文件,kettle,获取,table 来源: https://www.cnblogs.com/dalaba/p/14812917.html