多表数据迁移
将不同的数据库中的多个表中的数据进行迁移,将表名作为变量,在作业中执行。
本文使用的数据库均是mysql。
1.创建2个数据库
一个是源数据库,一个是目标库,源数据库中有表和数据;目标有对应的空表;
2.建立第一个转换,名称为“获取表名.ktr”
创建转换的方法:文件->新建->转换
获取表名的方法有多个,此处列出使用表输入和excel输入获取,个人觉得使用表输入适用于数据库中所有表均同步,excel适用于制定表数据同步;获取到表名后设置表名存储字段,并将表名记录复制到结果中;
(1)表输入
(2)excel输入
输入/表输入:
输入/Excel输入:
说明:
测试用的excel存储的表名:
转换/字段选择:
点击“获取选择的字段”,在下拉中选择即可;
作业/复制记录到结果:此项不用做任何设置;
3.建立第二个转换,名称为“设置变量.ktr”
将获取的表名设置为变量
作业/从结果获取记录:
字段名称与第一个转换中的字段选择的名称保持一致;
作业/设置变量:
4.建立第三个转换,名称为“迁移数据.ktr”
将表(变量TNAME)的数据进行迁移
输入/表输入:
记得勾选下面的:替换SQL语句中的变量
输出/表输出:
5.建立一个子作业,名称为“迁移数据子作业.ktr”
创建作业的方法:文件->新建->作业
通用/start:
不需要任何设置;
通用/设置变量:
通用/转换:
6.建立一个子作业,名称为“迁移数据.ktr”
实现需求的最终作业,开始后,先获取表名,然后执行作业(获取到所有表的数据迁移),完成后结束。
Start,不再赘述。如果需要定时可以在此处设置定时更新时间。
通用/转换---获取表名:
通用/作业:
通用/成功:不需要任何设置。
以上所有设置完成后,点击执行:
成功了,可以去看看了。
刚开始使用kettle,有错误的地方烦请指正