Kettle原理和JDBC类似,可以以代码思路思考。
MySQL 连接jar包 mysql-connector-java-5.1.34.jar
SQLServer 连接jar包 sqljdbc42.jar,jstl-1.2.jar
Oracle 连接jar包 ojdbc6.jar
Kettle数据同步有两种方式:
①时间戳方式:在原表中找出时间最大的一条,目标表中where date>原date,写的方式是======输入 --> 输入 -->输出(插入)。
存取数据时最好按时间从小到大排序,因为中途失败时原表最后一条数据还是小于目标表中的数据。
这种方式适用于目标表和原表中有时间字段,如不满足则取第二种方式
②触发器方式:触发器方式,即监听目标表中的insert delete update 并在触发器中进行原表中的增删改,缺点是:如果存在断网的
情况会导致一部分的数据丢失。因为在触发器是无法连接到需要同步的数据库。
这里选择的是第①种方式进行数据同步:
需注意图二中需要勾选 和 选择插入数据对的表,语法可用 === 字段 > ? 的方式。
最后已插入的方式,表一用来查询的关键字 即 目标表和原表中满足关系的会对表二中字段进行更新
Kettle里可以设置JDK1.8 ,在Spoon.bat编辑中@echo off下一行加
set JAVA_HOME=C:\java\jdk1.8.0_91\bin
set PATH=%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar