项目场景简单描述:从一个数据库A的某一张表X同步历史数据到另一个数据库B的某一张表Y,数据的来源是X,需要同步的表是Y,数据量大概在四千万左右,同时如果表A有新增的数据,那么表B要实现同步更新。
解决方案:1首先我想到了直接把数据导出为txt或者excel或者sql语句的方式,这样做的好处是很方便,但是有几点不好的地方:1一个是文件大小太大,一千万的数据量大概就有1点多个G,而且需要人为手动导入导出,而且每一次同步更新都需要手动导入导出一次,不太方便。
2.通过ETL(Extract-Transform-Load:数据提取、转换、加载)工具进行数据的同步,由于对相关软件不太熟悉,特地记录一下这个运行过程。
软件环境:Kettle7.0(需要jdk1.8及以上的环境)
jdk1.8
一 准备工作:
安装好kettle7.0以后,在Spoon.bat下面添加本机的java1.8环境,需要注意的是kettle7.0至少需要jdk1.8以上的版本才能稳定运行,例如我的就是:
set JAVA_HOME=D:\Java\jdk1.8.0_181
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
set Path=%JAVA_HOME%\bin;
二 建立转换
(1)创建db连接,创建后最好是右键-》共享保存这个db连接,所有的转换项目都可以使用