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. 【算法】C程序超详细的qsort排序函数解释和模拟

    C程序利用冒泡排序的思想模拟实现qsort排序函数 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一种非常重要的动力 看完之 ...

  2. Hive-服务启动和停止命令

    1.启动命令 #!/bin/bash nohup hive --service metastore >> $HIVE_HOME/logs/metasotre.log 2>&1 ...

  3. MySQL8-[问题解决]java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying

    对应为MySQL8和 MySQL-connecter8.0.16 1.修改MySQL驱动器 原来的版本: com.mysql.jdbc.Driver 现在改为:com.mysql.cj.jdbc.Dr ...

  4. Java-获取当前时间并进行格式化

    获取年月日 时分秒 import java.text.SimpleDateFormat; import java.util.Date; Date dt = new Date(); SimpleDate ...

  5. JOISC 2018 记录

    Day1 T1 Construction of Highway 每一次操作形如查询一条到根的链上的逆序对数,然后将这条链的权值全部修改成同一个权值. 发现这个操作类似于 LCT 的 Access 操作 ...

  6. 用 WebClient 代替 RestTemplate

    RestTemplate是用于执行 HTTP 请求的同步客户端,通过底层 HTTP 客户端库(例如 JDK HttpURLConnection.Apache HttpComponents 等)公开一个 ...

  7. sensitive-word-admin v1.3.0 发布 如何支持敏感词控台分布式部署?

    拓展阅读 sensitive-word-admin v1.3.0 发布 如何支持分布式部署? sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word ...

  8. 【Unity3D】异步Socket通讯

    1 前言 ​ 同步 Socket 通讯 中的 Accept.Connect.Receive 等方法会阻塞当前线程,当前线程必须等待这些方法执行完,才会继续往下执行,用户需要另开线程执行这些耗时方法,否 ...

  9. Vuex和普通全局对象

    Vuex中的核心方法 Vuex是一个专为Vue.js应用程序开发的状态管理模式,其采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.每一个Vuex应用的核心就是 ...

  10. Springboot集成Druid连接池并实现数据库密码加密

    Druid介绍 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss ...