使用Kettle实现不同数据之间同步
Contents
- 1. 概述
- 2. 软件安装
- 3. 典型场景:Oracle-2-SqlServer
- 4. 定期自动同步数据
1. 概述
Kettle是一个久负盛名的ETL数据传输工具,在我们接触过的许多IT企业中,几乎都有不同的开发或运维团队在使用这个工具。
Azure DevOps Server中存储着大量的开发过程数据,如果对于开发过程数据进行度量分析,为了避免大量读取实时库(AzureDevOps_DefaultCollection)导致性能问题,我们通常需要将实时数据库或清洗后数据仓库中的数据传输给第三方平台,实现数据分析和挖掘;为了完成这个数据传输功能,经过多方验证后,发现Kettle是一个比较理想的数据传输工具。本文主要介绍Kettle的基本使用场景。
2. 软件安装
- 配置Java环境:
Kettle是一个开源软件,并且运行在Java环境中,如果需要在Windows系统中运行Kettle,一般需要安装JDK;在配置JDK的过程中,我们发现如果使用绿色版本的JDK配置环境变量后,Kettle是不能正常运行的,系统会提示找不到javaw的错误,因此建议用户下载JDK的Windows安装程序完成Java环境的配置。 - 下载Kettle程序包
可以从官方完整http://www.kettle.be/中下载程序包,解压缩后就可以直接运行,无需安装
3. 典型场景:Oracle-2-SqlServer
新建一个转换;在kettle中,转换实际上就是完成一个特定传输任务的脚本文件
选择表输入;表输入是指数据来源:
双击表输入,定义源数据库的连接:
Oracle的数据连接,一般都使用连接字符串,如下示意图:新建输出”插入/更新“
插入/更新是指数据更新类型的同步,kettle可以按照主键更新数据;它可以实现对不存在的数据的就插入,已经存在的就更新;
双击输出信息,可以设置目标数据库的信息,例如数据库连接、主键、同步的字段等:
4. 定期自动同步数据
在不同系统之间同步数据,我们一般都要求定期执行,尽量减少认为的工作。
Kettle中的作业功能,就是为了专门实现自动定期同步的。当我们将前面配置的转换存储为一个扩展名为ktr的文件后,就可以在配置一个作业流程,调用转换,并配置好定期运行的功能。下面我们来看一下作业的基本操作。
- 在Kettle中,新建一个作业文件
- 配置作业
从核心对象页签中拖住Start、转换、成功到编辑页面中
双击Start配置定时信息;
双击转换选择前面已经配置的脚本文件;
点击顶部的运行按钮,一个定时任务就启动起来了。
https://www.cnblogs.com/danzhang
Azure DevOps MVP 张洪君