一、kettle介绍
Kettle是一个Java编写的ETL工具,意思为“水壶、锅”等;简单点就是一个容器用来装数据;可以把多种数据放在里面,最终进行选取有用的,也就是可以同时把多个数据库源数据入湖,然后做一系列筛选,选出有用的进行同步。
二、kettle功能
1、免费开源。
2、易部署。多种操作系统可以部署
3、不同数据库。可以连接多种数据库
4、定时功能。可以定时进行操作,常用语数据同步、备份等等、
5、图形界面设计。图形化拖、拉对应组件进行配置
三、kettle使用
1、下载安装
官网地址:Pentaho from Hitachi Vantara - Browse Files at SourceForge.net
官网现在下载不了,如下,也可以点击下方文档里面有新的,但是下载受限:
个人的网盘下载链接9.0版本:
链接:https://pan.baidu.com/s/1ExBzndMsY07pLzNzoqQOeQ?pwd=6rme
提取码:6rme
2、安装
windows版本直接解压,将需要链接的数据库驱动包jar拷贝到lib文件夹下面(kettle9.0对mysql8驱动不使用,需要单独设置)
3、案例使用(两数据库表数据同步)
可同时连接多种多个数据库入湖操作,可进行一些列各种筛选,kettle功能很强大,以下做基本使用
3.1 连接数据库
由于使用的是kettle9.0 链接 mysql8.0.19 ,对应mysql驱动包缺少一个文件,所有链接报错。
解决方法1:用新版本kettle,或降级数据库到5.0
解决方法2:修改链接数据库配置参数(也需要拷贝8.0的驱动),修改配置如下:
自定义url:
jdbc:mysql://127.0.0.1:3306/hhh?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
自定义驱动类:
com.mysql.cj.jdbc.Driver
3.2 新建作业
下面的组件直接从左边拖过来就行了
一个作业可以包含多个转换,适合一系列的多数据同步处理。
start:可以设置定时任务,也可以单独点击运行一次
转换:绑定转换(选择好保存的转换文件)
成功:可有可无
3.3 新建转换
输入(表、excel、文件、yml、文件等):可以同时输入多张表到湖。
输出(一样类似)
链接需要同步的数据库(详情看3.1)
输入:
sql里面可以加条件:根据时间、条件等查询。可以做增量同步根据修改时间进行筛选
字段选择:
选择需要入湖的字段,以及改名等
表输出:
选择输出的库、表
再选择映射的字段
选择是否裁剪表,或者是每次追加数据
3.4 测试转换
点击作业上面启动按钮即可,观察控制台输出以及数据表数据。
下方控制台显示输入输出的数据条数,已经数据的成功或失败条数
数据库:
由于输入进行了sql筛选,所以同步了满足条件的2条记录
数据源库:socket库 ,数据目的库:hhh库