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多个表一起迁移-通过配置文件配置需要同步的字段,非全字段同步的更多相关文章

  1. Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里

    <Windows Azure Platform 系列文章目录>  Azure SQL Database (19) Stretch Database 概览      Azure SQL Da ...

  2. asp.net core 将配置文件配置迁移到数据库(一)

    asp.net core 将配置文件配置迁移到数据库(一) Intro asp.net core 配置默认是项目根目录下的 appsettings.json 文件,还有环境变量以及 command l ...

  3. mysql 案例 ~ 表空间迁移数据与数据导入

    一  简介:mysql5.6+的表空间传输二 目的:复制数据到另一个表三 步骤   1 create table b like a ->创建一个空表   2 alter table b disc ...

  4. INNODB表快速迁移

    本实验在一台server上启动了2个mysql实例端口分别是3307   3308,目的是将3307的表aaa迁移到3308中去,并打开3308的slave 1.在3308上 mysql> dr ...

  5. 第三百零六节,Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

    Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...

  6. EF 配置实现建表与迁移

    通过EF 作为操作数据库的工具有一段时间了,也做了几个相对不大的项目,慢慢的也对EF的使用摸索出来了一些规则,虽然说不是技术难点,但是,我说的是但是,能够提高我们开发效率的棉花糖有时我们还是必须要吃的 ...

  7. mysql5.6之 传输表空间迁移表或恢复误删除的表

    一,简单说明: 1),传输表空间的限制:  1,mysql 版本 5.6.6 及其以上,并且版本建议源和目标版本建议都是GA版并且大版本一样  2,表引擎为innodb并且开启独立表空间  innod ...

  8. 四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

    Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...

  9. Mysql数据库表的迁移和表的复制

    同一台服务器上的,数据库之间的表的迁移: create table db.tablename as select * from db2.tablename; 此sql使用于mysql,从一台服务器上的 ...

  10. 【oracle11g,18】存储结构:暂时表,手工条带化,表/索引迁移表空间,删除表,外部表

    一. 暂时表 暂时表放在暂时表空间,不生成redo,仅仅有undo. 在暂时表中能够创建索引.视图及触发器,还能够使用"Export and Import(导出和导入)"或&quo ...

随机推荐

  1. Python二分法

    二分法 尽管二分搜索通常优于顺序搜索,但当n较小时,排序引起的额外开销可能并不划算.实际上应该始终考虑,为了提高搜索效率,额外排序是否值得.如果排序一次后能够搜索多次,那么排序的开销不值一提.然而,对 ...

  2. CF1515F Phoenix and Earthquake 题解

    题目链接:CF 或者 洛谷 首先基于一个事实,答案一定是生成树,显然,每次我们都需要连边,每次都会 \(-x\),那么一共会减少 \((n-1)\times x\),很显然的一个必要条件为: \[\s ...

  3. (C语言)格式输出,右对齐

    printf("%8d", i);可以输出整数 i,让它占至少 8 个字符的宽度(即场宽为8):如果 i 不够8 位则在左边补空格使它右对齐满 8 位,如果 i 的输出的位数 ≥ ...

  4. 【实用小技巧】RSA非对称加解密及XML&PEM格式互换方案

    ​ 最近因考虑接口安全问题,有实现给WEB API实现统一的参数鉴权功能,以防止请求参数被篡改或重复执行,参数鉴权方法基本与常见的鉴权思路相同,采用(timestamp+sign),而我为了防止tim ...

  5. SpringMVC关于@RequestBody加与不加的区别

    SpringMVC关于@RequestBody加与不加的区别 前两天在做项目的时候遇到了这样一个问题,小组成员为了方便做接口测试,给Controller控制器上加了@RequestBody注解,但是前 ...

  6. Libata Error Message 解析

    Libata error messages     Contents [hide]  1 Overview 2 Prefix 3 Exception line 4 Input taskfile 5 O ...

  7. Laravel入坑指南(8)——控制台程序

    我们知道,php代码不仅可以用web的形式对外提供服务,同时也可以在命令行下执行. 对于原生的php来说,假设我们有一个php文件,名为Command.php,如果想要在控制台下执行这个文件,那么我们 ...

  8. U盘安装win7提示缺少所需的CD/DVD驱动器设备驱动程序

    问题: 最近使用U盘启动盘安装win7,系统弹出提示框: 解决方法: U盘别插在usb3.0的口(蓝色),换成一个usb2.0的口就可以了

  9. 关于char * 和 char [] 的一点理解

    截取一段有用的信息: c++的char[]和char*的区别 char str1[] = "abc": 这里的"abc"是一个常量,首先会在常量存储区里存储&q ...

  10. Direct2D 几何篇

    微软文档:Geometries overview 本篇通过官方文档学习,整理出来的demo,初始样本请先创建一个普通的desktop app. // Test_Direct2D_Brush.cpp : ...