多表数据迁移

将不同的数据库中的多个表中的数据进行迁移,将表名作为变量,在作业中执行。

本文使用的数据库均是mysql。

1.创建2个数据库

一个是源数据库,一个是目标库,源数据库中有表和数据;目标有对应的空表;

2.建立第一个转换,名称为“获取表名.ktr”

创建转换的方法:文件->新建->转换

获取表名的方法有多个,此处列出使用表输入和excel输入获取,个人觉得使用表输入适用于数据库中所有表均同步,excel适用于制定表数据同步;获取到表名后设置表名存储字段,并将表名记录复制到结果中;

         (1)表输入

kettle mysql分页导数据 kettle数据库迁移_etl

(2)excel输入

kettle mysql分页导数据 kettle数据库迁移_数据库_02

输入/表输入:

kettle mysql分页导数据 kettle数据库迁移_数据库_03

 

输入/Excel输入:

kettle mysql分页导数据 kettle数据库迁移_数据分析_04

 

说明:

测试用的excel存储的表名:

kettle mysql分页导数据 kettle数据库迁移_表名_05

转换/字段选择:

点击“获取选择的字段”,在下拉中选择即可;

kettle mysql分页导数据 kettle数据库迁移_etl_06

作业/复制记录到结果:此项不用做任何设置;

kettle mysql分页导数据 kettle数据库迁移_数据库_07

 

3.建立第二个转换,名称为“设置变量.ktr”

将获取的表名设置为变量

kettle mysql分页导数据 kettle数据库迁移_表名_08

作业/从结果获取记录:

字段名称与第一个转换中的字段选择的名称保持一致;

kettle mysql分页导数据 kettle数据库迁移_数据库_09

作业/设置变量:

kettle mysql分页导数据 kettle数据库迁移_kettle mysql分页导数据_10

 

4.建立第三个转换,名称为“迁移数据.ktr”

将表(变量TNAME)的数据进行迁移

kettle mysql分页导数据 kettle数据库迁移_kettle mysql分页导数据_11

输入/表输入:

记得勾选下面的:替换SQL语句中的变量

kettle mysql分页导数据 kettle数据库迁移_数据分析_12

输出/表输出:

kettle mysql分页导数据 kettle数据库迁移_kettle mysql分页导数据_13

 

5.建立一个子作业,名称为“迁移数据子作业.ktr”

创建作业的方法:文件->新建->作业

kettle mysql分页导数据 kettle数据库迁移_数据分析_14

通用/start:

不需要任何设置;

kettle mysql分页导数据 kettle数据库迁移_数据分析_15

通用/设置变量:

kettle mysql分页导数据 kettle数据库迁移_etl_16

 

通用/转换:

kettle mysql分页导数据 kettle数据库迁移_数据库_17

 

6.建立一个子作业,名称为“迁移数据.ktr”

实现需求的最终作业,开始后,先获取表名,然后执行作业(获取到所有表的数据迁移),完成后结束。

kettle mysql分页导数据 kettle数据库迁移_数据库_18

Start,不再赘述。如果需要定时可以在此处设置定时更新时间。

通用/转换---获取表名:

kettle mysql分页导数据 kettle数据库迁移_表名_19

通用/作业:

kettle mysql分页导数据 kettle数据库迁移_etl_20

通用/成功:不需要任何设置。

以上所有设置完成后,点击执行:

kettle mysql分页导数据 kettle数据库迁移_etl_21

kettle mysql分页导数据 kettle数据库迁移_etl_22

成功了,可以去看看了。

刚开始使用kettle,有错误的地方烦请指正