如何用Pentaho Spoon/PDI实现MySQL数据迁移后删除源库数据?
使用Pentaho Spoon/PDI实现MySQL数据迁移并清理源数据
一、搭建数据复制转换
- 打开Spoon,新建转换文件
- 添加
表输入组件,配置源MySQL数据库连接,SQL语句写:
(如果是增量迁移,可添加过滤条件,比如SELECT * FROM 你的源表名称;WHERE update_time > '上次迁移时间') - 添加
表输出组件,配置目标MySQL数据库连接,选择目标表:- 若目标表需要先清空再插入,勾选截断表选项;
- 若只需追加数据,直接选择插入模式即可
- 拖拽连线将
表输入的输出端口连接到表输出的输入端口,保存转换
二、创建作业串联迁移+清理流程
因为需要确保数据复制完成后再执行源数据清理,用作业来管控流程:
- 新建作业文件
- 添加
转换组件,选择刚才创建的数据复制转换文件 - 添加
SQL组件,配置源MySQL数据库连接,执行清理语句:- 快速清理用截断(注意:表有外键约束时无法使用):
TRUNCATE TABLE 你的源表名称; - 保留自增ID或有外键约束时用删除:
DELETE FROM 你的源表名称;
- 快速清理用截断(注意:表有外键约束时无法使用):
- 拖拽连线,将
转换组件的成功端口连接到SQL组件的启动端口,只有迁移成功才会触发清理 - 可选:添加
成功/失败组件标记流程状态,方便排查问题
关键注意事项
- 权限检查:源库账号需拥有
SELECT和TRUNCATE/DELETE权限,目标库账号需拥有INSERT(或TRUNCATE)权限 - 事务保障:若需强一致性,可在转换中开启事务,或在作业中用
事务组件包裹迁移+清理步骤 - 测试验证:先在测试环境验证数据完整性和清理逻辑,再部署到生产环境
- 增量场景:避免全量查询,通过时间戳或主键范围过滤已迁移数据,防止重复复制
内容的提问来源于stack exchange,提问作者Pydi Raju
相关产品推荐
相关产品推荐

