kettle介绍
kettle是一个开源的ETL工具,纯java代码编写,可以在Windows、linux、unix系统上运行
绿色无需安装,高效的完成数据抽取转换加载。
1、kettle存储方式
xml形式存储
以资源库方式存储(数据库资源库、文件资源库)
2、kettle设计
转换:tranform,完全针对数据的基础进行转换
作业:job:整个工作流的控制
区别:
作业是步骤流,转换是数据流,这就是job和tranform最大的区别
作业的每个步骤,必须等到前面的步骤执行完毕,后面的步骤才会执行,而转换会一次性把所有
控件先启动(一个控件对应一个线程)
3、kettle组成
3.1 spoon.bat/spoon.sh 勺子:一个图形化界面,可以让我们用图形化的方式开发tranform和job
3.2 pan.abt/pan.sh 煎锅: 利用pan来调用tranform
3.3 kitchen.bat/kitchen.sh 厨房: 利用kitchen命令来调用job
3.4 Carte.bat/Carte.sh : 菜单: 轻量级的web服务器,用于建立远程的ETL服务器
kettle安装部署
1、现在网上下载好安装包
官网地址:https://community.hitachivantara.com/s/article/data-integration-kettle
2、直接解压,运行Spoon.bat就可以启动了
在此之前 需要配置jdk环境变量
到此kettle工具就安装好了
入门案例 - kettle实现单表数据迁移
1、连接数据库驱动
在运行之前,我们需要下载对应数据库的jar包导入到Kettle的lib目录下,比如我们需要把oracle迁移到mysql,
那就需要oracle和mysql两个jar包, 我用的是这里两个:
2、配置kettle转换
双击打开spoon.bat,在左侧主对象菜单栏,新建一个转换,命名为abcd,如下图:
3、配置oracle和mysql连接
在DB连接一栏,右击新建连接,配置数据库连接
注意主机名称尽量不要填localhost
点击测试,显示成功即为配置完成
4、配置迁移步骤
在左侧菜单栏【转换】里面,选择【核心对象】,选中输入下将【表输入】拖拽到右侧空白区域。
双击你拖进来的表输入,修改“步骤名称”,选择源数据,点击获取【获取SQL查询语句】,选择你想同步的表,
点击确定后就可以了。当然也可以自己写sql语句,点击获取SQL查询语句 选择一张你要迁移的表数据
点击预览可以查看要迁移的数据。
接下来配置表输出,在左侧菜单栏【转换】里面,选择【核心对象】,选中将【表输出】拖拽到右侧空白区域。
双击表输出,配置要迁移的目标表,我这里两边数据库字段一样,故而可以不用修改,如图:
接下来配置字段选择,在左侧菜单栏【转换】里面,选择【核心对象】,选中将【字段选择】拖拽到右侧空白区域。
双击字段选择,选择列映射,匹配源字段和目标字段是否一致,不一致的原因可能是字段类型不一。
点击Add,然后点击确定
ctrl+s保存文件,到这里一个简单的转换就配置完成了。
5、开始迁移数据
手动运行,点击下图圈圈里面的按钮
点击启动,日志级别这里可以选择错误日志,这样只记录错误信息
转换输出栏如下图:
最后检测两边表,如记录数count(*)、表中数据对比等没问题的话表示转换完成。