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

摘要:
[插入表1、点击鼠标右键,进入作业内部,可以看到作业包含两个转换,如下图2、鼠标左键选中2-1获取表名,鼠标右键进入具体的步骤控件中,下面包含两个控件:从结果获取记录和设置变量。
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

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

免责声明:文章转载自《kettle多个表一起迁移-通过配置文件配置需要同步的字段,非全字段同步》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇uniapp将时间日期格式化的组件unidateformat的用法MongoDB---如何避免插入重复数据(pymongo)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

KETTLE集群搭建

KETTLE集群搭建 说明: 本文档基于kettle5.4 一、集群的原理与优缺点 1.1集群的原理          Kettle集群是由一个主carte服务器和多个从carte服务器组成的,类似于master-slave结构,不同的是’master’处理具体任务,只负责任务的分发和收集运行结果。 Master carte结点收到请求后,把任务分成多个部...

kettle性能调优

性能调优在整个工程中是非常重要的,也是非常有必要的。但有的时候我们往往都不知道如何对性能进行调优。其实性能调优主要分两个方面:一方面是硬件调优,一方面是软件调优。本章主要是介绍Kettle的性能优化及效率提升。 一、Kettle调优 1、调整JVM大小进行性能优化,修改Kettle定时任务中的Kitchen或Pan或Spoon脚本。 修改脚本代码片段 se...

Cacti数据备份与数据迁移还原

简介:部署了一台备用cacti监控服务器,需要将原cacti监控服务器的数据迁移到新的监控主机上去,实现监控数据双重同步备份。 cacti数据是由mysql数据(主要保存设备配置信息、用户信息等)和rra数据(环状数据库,没有起点和终点,存储监控数据信息;加载速度比mysql数据库快)。因此只需要将这两部分数据备份再恢复到新部署的cacti即可。...

python-mysql数据迁移

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。本文给大家介绍Python中MySQL数据迁移到MongoDB脚本的方法 Python MySQL数据库配置可在pycharm中直接进入mysql如未安装 执行  pip install pymysql  --安装mysql   setting...

Kettle入门及性能优化FAQ

1、安装 配置Java环境 Java环境配置问题 java_home:D:Program FilesJavajdk1.7.0_25(安装jdk路径) classpath:.;%java_home%libdt.jar;%java_home%lib ools.jar path:在path路径中添加%java_home%in;%java_home%jrein;...

集团公司(嵌入ETL工具)財务报表系统解决方式

集团公司(嵌入ETL工具)財务报表系统解决方式 一、项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包含:金矿、铜矿、房产、化纤等。因为子公司在业务上的差异。子公司的財务报表也存在非常多不同之处。因此,各个子公司须要依据自己的情况,制作符合自己个性化需求的报表模版,然后再部署到集团server进行统一管理。 集团使...