KETTLE整架构、整库迁移(如何一次抽取200张表)

KETTLE整架构、整库迁移作业流程

KETTLE模板在文章末尾,建议大家先下载,导入模板后在看文章内容!!!

文章目录
一、获取某个数据库,架构所有表名
二、数据迁移
三、案例

本文使用场景:需要一次性抽取某个架构中的数据,如果迁移数据库可以不用看本篇文章。下面作业的前提是我们的目标库已经建好了表结构,本文中目标表和源表的表名是一样的。

说说我工作中使用的场景:

  • 该数据为一次性数据,数据源为sqlserver的bak文件包、共210张表,目标库为oracle数据库。
  • 解决方法:将数据还原在sqlserver数据库(本地或者服务器),然后通过KETTLE整架构迁移到目标库中
一、获取某个数据库,架构所有表名

查询还原数据库中所有的表名

可以打开获取表名这个转换,最主要的步骤就是查询数据库中所有的表名。

#查询该数据库中所有的表名
SELECT NAME FROM SysObjects Where XType='U' 
二、数据迁移

1、获取变量:获取步骤一结果并设置为变量
2、数据的抽取(数据表的导入)
3、将成功的表名传输到一个文件夹中保存

作业流程

这里面比较难理解,主要有三点。 第三点一定要理解,第三点也是最重要的。

1、获取变量:获取步骤一结果并设置为变量
2、数据的抽取(数据表的导入):接受变量中的表名,在进行抽取
3、将成功的表名传输到一个文件夹中保存,记住文件夹位置。

原因:我们一次性抽取几百张表肯定会报错,在报错之前我们肯定抽取过一些表到目标库中(假设我们已经抽取了ABCD4张表)

如果我们解决了报错表的问题,这时在运行作业,就会把之前抽取的ABCD4张表在抽取一遍。会导致目标库中的数据量比数据源多了1倍。

所以报错解决后,已经抽取过的表不需要在抽取。
如果解决勒?我们在设置变量中排除这些表就OK,也就是在第一步获取表名的时候不获取这些表。所以在整个作业中我们除了修改源库目标库的链接外,还需要修改第一步获取某个数据库,架构所有表名


三、案例

第一次执行报错,发现文件夹中有4个表名ABCD四张表名,报错解决后。修改作业中获取表名步骤(整个作业只修改这一个步骤),修改后点执行作业。

SELECT NAME FROM SysObjects Where XType='U' 
AND NAME NOT IN(
'表名A',
'表名B',
'表名C',
'表名D')

第二次执行作业时又报错,发现文件夹中有7个表名FGHIJKL7张表名,报错解决后。修改作业中获取表名步骤(整个作业依然修改这一个步骤),修改后点执行作业。

SELECT NAME FROM SysObjects Where XType='U' 
AND NAME NOT IN(
'表名A',
'表名B',
'表名C',
'表名D',
'表名F',
'表名G',
'表名H',
'表名I',
'表名G',
'表名K',
'表名L')


第三次执行作业时又报错,解决方法参考第二次的解决方法。

如果不会可以给我留言,当然所有作业的前提是我们的目标库已经建好了表结构,本文中目标表和源表的表名是一样的。

模板链接:https://pan.baidu.com/s/11Q_jSki3sKkop-8S3X_FiQ 提取码:y0bg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值