本教程是为了实现SQLSERVER数据库表中数据增量同步到MySQL数据库,并每天定时执行一次。
注:只实现了新增与更新数据,源库中删除的数据未实现同步
开始之前,请记得自行安装JDBC,安装步骤百度搜索即可
Kettle的安装,请参考我的《Kettle安装部署》教程
打开Kettle软体,新建一个转换任务,“文件”-->“新建”-->“转换”,如图:
2.2、新建“表输入”
在“核心对象”-->“输入”-->“表输入”,将“表输入”图标直接拖拽到右侧区域,如图:
2.3、配置“表输入”
双击“表输入”图标,进入配置界面,步骤名称默认即可,数据连接就是选择你的源数据库,这里没有进行过配置,所以点击“新建”进行SQL SERVER源数据库连接配置:
2.3.1、配置数据库连接
填写“连接名称”(随意写),“连接类型”选择MS SQL SERVER,“连接方式”默认即可,参考下图的右侧将选项填写清楚,注意数据库名称就是你想连接的库,点击“测试”按钮出现左侧窗口信息,即表示连接成功,点击“确认”即可。
2.3.2、选择导出的表
点击“获取SQL查询语句”,在弹出的窗口中选择要进行数据传输的table,点击“确定”即可完成“表输入”配置。
3、配置“字段选择”
3.1、新建“字段选择”
在模块化区选择“转换”-->“字段选择”,将其拖拽到右侧区域,并在“表输入”之间画一条线(按住Shift键)。
3.2、配置字段:
双击“字段选择”图标打开配置界面
在此需要多说几句
“选择和修改窗口”:可以修改字段名称
“移除”:可以选择不需要传输数据的列,选择后将不会传输此字段里的值到目标表,我们这里选择的是TS字段,因为此字段是timestamp类型数据(时间戳)
“元数据”:在此可以对源数据表中的所有字段进行转换设置,比如类型,长度,精度,字符集等,如果想一次性将源表的所有字段均加载进来的话,点击右侧“获取改变的字段”。
配置完成之后,点击“确定”即可。
在“输出”--“插入/更新”拖拽图标到右侧区域,并使用同样方法与“字段选择”图标画连接线
4.2、配置“插入/更新”
双击“插入/更新”图标
步骤名称选择默认,
① 新建我们需要导入的目标数据库连接,按照上面的步骤教程新建连接,在这里我就不再赘述了
② “浏览”选择需要导入数据的table
③ 在此区域内选择查询数据时依据的字段,其实也就是根据此字段来判断两个表中的数据是否是同一笔记录
④ 点击“获取和更新字段”可以在“更新字段”区加载所有字段,注意选择是否所有字段都需要更新数据,我在这里将UserID的更新状态改成了Y。
配置完点击“确定”即可。4.3、保存此转换
将此转换任务保存为一个文件,后续做定时任务时会使用到,并且若想开始下节的校验检测也必须进行保存动作。
5、校验连接情况
开始前必须要先进行保存
点击“校验这个转换”按钮进行连接检测,若未出现红色报错,则表示检测成功,勾选“隐藏成功结果”可以显示出检测的所有步骤。
有任何报错,请注意查看结果里的备注信息,处理完问题后需保存并重新执行校验检测动作,如图:
点击“运行这个转换”,开始我们的数据增量同步任务
如果出现任何错误,请查看“执行结果”里的“日志”,日志里一般会有准确的错误提示,一般都是些字段类型不正确、字符集不一样、或者字段长度导致的。
最后慢慢等待着成功的到来…….
7、定时任务
至此是不是觉得已经结束了,非也。。。我们还需要设定定时任务
7.1、新建作业
7.2、部署作业
在“核心对象”中拖拽两个图标到执行区
分别是“START”和“转换”图标,并连接起来
7.3、配置“START”
双击“START”按钮,配置定时时间等信息
勾选“重复”选项可以重复执行任务
我设定的是每天早上08:00执行所选任务
7.4、配置转换
双击“转换”图标,根据如下图示选择上面我们保存的转换任务文件,即选择我们想重复执行的转换任务
7.5、运行作业(Job)
点击Run按钮开始执行定时重复任务
到此为止,我们已经将所有的步骤配置完毕,恭喜你…….