因为服务器限制,现需要同步两个不同数据库的业务表数据。
这里选择使用Kettle 实现。5分钟,同步一次。
下面是实现的操作总结。
1.下载 安装kettle
https://sourceforge.net/projects/pentaho/files/Data%20Integration/
环境要求: 安装jdk:1.8或以上版本
配置java环境变量 JAVA_HOME
具体查看jdk环境配置
配置kettle环境变量 KETTLE_HOME ,目录指向kettle的实际安装目录: ..../data-integration
2.解压 点击 Spoon.bat 即可运行 data-integration/Spoon.bat。首次较慢需等待
3.这里我所需的同步 是 A库 中的3张表 实时 同步 到B库中
这里要用的是数据同步,通过比较 数据源 和 目标数据的内容,对目标数据表进行 插入、更新、删除操作 使两张表内容完全一致。
1创建转换
界面: 文件--创建--转换
2主对象树:添加数据库链接
点击测试 可以查看链接 是否成功
首次链接可能因为没有对应驱动 无法连接,可在目录......\data-integration\lib下添加对应数据库驱动jar包
mysql:mysql-connector-java-5.1.48-bin.jar
3.核心对象:
输入--表输入 拖拽到工作台。双击编辑属性。
选择要同步的表 或者 要同步的数据sql
这里需要两个表输入 源数据表 和 目标数据表
连接--合并记录
将俩个表输入 连接在一起。
需要保持顺序一致,连个表查询的时候 可以order by 排个序
合并内容 和 数据同步 是一起使用的。
设定好转换策略 一定要保存 ,保存**.ktr文件到一个目录即可;
然后
文件--新建--作业
通用--START
通用--转换
通用--成功
按住Shift 连接功能块
点击转换 设置转换文件:选择刚刚的.ktr文件
确定即可。
保存作业文件,需要先保存才可以运行。
运行可查看 同步结果。
开始功能块可以设置 定时循环条件。