Kettle使用

安装

1. 配置Kettle

1.1 下载Kettle

下载地址
在这里插入图片描述
绿色版: 解压到具体的目录下即可
在这里插入图片描述

1.2 配置Kettle

1.2.1 使用的mysql驱动的方式连接数据库,则需要mysql驱动(对应连接数据库版本)

例如:这里使用的mysql8.0, 则需要mysql8版本的驱动
在这里插入图片描述
将这个驱动放在data-integration/lib目录下
在这里插入图片描述

1.2.2 mysql数据源配置

进入 data-integration/simple-jndi,下面有一个jdbc的配置文件:
在这里插入图片描述
修改该文件(在最底下新增字段):

MYSQL8_DB/type=javax.sql.DataSource
MYSQL8_DB/driver=com.mysql.cj.jdbc.Driver
MYSQL8_DB/url=jdbc:mysql://localhost:3306/kettle?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
MYSQL8_DB/user=root
MYSQL8_DB/password=root

MYSQL8_DB: 表示这个数据源的名字
MYSQL8_DB/type : 数据源类型
MYSQL8_DB/driver: 驱动名
mysql8不需要修改/mysql5需要修改为com.mysql.jdbc.Driver
MYSQL8_DB/url:
数据库连接地址: 修改为自己的数据库地址即可:要携带SSL,编码 等等的参数
例如:jdbc:mysql://localhost:3306/kettle?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
MYSQL8_DB/user:用户名
MYSQL8_DB/password:密码

注意: 这个数据源可以有多个,但是名字不能重复(例如: 远程数据库和本地数据库的同步):

<!-- 远程数据源-->
MYSQL8_DB/type=javax.sql.DataSource
MYSQL8_DB/driver=com.mysql.cj.jdbc.Driver
MYSQL8_DB/url=jdbc:mysql://远程数据源:3306/kettle?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
MYSQL8_DB/user=root
MYSQL8_DB/password=root

<!-- 本地数据源-->
MYSQL8_2_DB/type=javax.sql.DataSource
MYSQL8_2_DB/driver=com.mysql.cj.jdbc.Driver
MYSQL8_2_DB/url=jdbc:mysql://localhost:3306/kettle?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
MYSQL8_2_DB/user=root
MYSQL8_2_DB/password=root

配置完毕

使用Kettle:

回到主目录:data-integration
例如:E:\Work\data-integration
打开这个bat文件
在这里插入图片描述
主界面展示:
在这里插入图片描述
主对象树:当前打开了几个转换,几个作业

2.1 作业和转换的区别:

转换(Transformation):主要是针对数据的各种处理,一个转换里可以包 含多个步骤(Step)。

作业(Job):相较于转换,是更加高级的操作。一个作业里包括多个作业项(Job Entry),一个作业项代表了一项工作,而转换是一种作业项,即作业里面可以包括多个转换。

转换 涉及到数据的处理 换句话说:数据库连接配置在转换 里面

2.2 转换:

2.2.1 创建转换

在这里插入图片描述
鼠标双击——新增转换
在这里插入图片描述
核心对象: 表示当前对象——转换对象,里面有哪些操作

2.2.2 数据库连接

现在要建立数据库的连接,则肯定不是在对象操作里面,返回主对象树
在这里插入图片描述

  1. 右键/双击建立数据库连接
    在这里插入图片描述
    例如:
    远程数据库建立连接:
    在这里插入图片描述
    本地数据库建立连接
    在这里插入图片描述
    连接完成后:
    在这里插入图片描述

2.2.3 在转换中执行数据操作

例如:将远程数据库的创建和修改后的数据(10分钟之内)同步到本地当中
数据库SQL:

CREATE TABLE `zz_test` (
  `id` varchar(100) NOT NULL COMMENT '测试主键',
  `content` varchar(100) DEFAULT NULL COMMENT '测试内容',
  `create_by` varchar(100) DEFAULT NULL COMMENT '创建者',
  `create_date` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `update_date` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `update_by` varchar(100) DEFAULT NULL COMMENT '更新者',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

表输入
表输入:类似于select语句,将数据查询出来

拖拽即可:
在这里插入图片描述
在这里插入图片描述

2.2.3.1 创建时间在10分钟之内的数据

表输入:
在这里插入图片描述
查询数据库SQL

SELECT
  id
, content
, create_by
, create_date
, update_date
, update_by
, remark
FROM tongframework.zz_test
where create_date >=  CURRENT_TIMESTAMP - INTERVAL 10 MINUTE;

在这里插入图片描述
数据输出:
插入/更新
在这里插入图片描述
拖拽进入右边界面
在这里插入图片描述
这里介绍流数据的概念:

流数据: 一组顺序、大量、快速、连续到达的数据序列
则如果表输入 和 插入/更新2 建立连线,则表输入中查询出的所有的数据都在这个流当中,插入/更新则可以直接拿到这个流数据

建立连线(按住shift建立连线):
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
测试执行转换:
在这里插入图片描述
查看执行过程:
转换 主要关注:
查看日志: 这里面会有报错信息
在这里插入图片描述
步骤度量 查看性能和更新插入的数量
在这里插入图片描述
可视数据:展示更新和操作哪些数据
在这里插入图片描述

2.2.3.2 更新时间在10分钟之内的数据

查询数据库SQL

SELECT
  id
, content
, create_by
, create_date
, update_date
, update_by
, remark
FROM tongframework.zz_test
where update_date >=  CURRENT_TIMESTAMP - INTERVAL 10 MINUTE;

同理更新表的设置:
在这里插入图片描述
插入/更新可以共用一个,因为都是根据流中的id比较
在这里插入图片描述
当连线的时候和 可能会遇到分发和复制的选择:
分发和复制的区别
这两种方式的区别是,分发会将一份数据按照发扑克牌一样分给下一个组件,数据始终都只有一份,而复制则是不一样,他会将一份数据复制n份给下一个组件,而这个N是多少呢取决于下一个组件的数量

按照创建时间的方式运行即可

2.3 作业:

2.3.1 新建作业

在这里插入图片描述

2.3.2 编写作业(简单作业):

拖拽相应组件
在这里插入图片描述
在这里插入图片描述
双击转换:
在这里插入图片描述
找到保存好的转换文件(配置转换即可)
在这里插入图片描述

在作业中可以设置定时任务:

双击start
在这里插入图片描述
如果定时任务,则一定需要重复,并且类型修改为时间间隔
在这里插入图片描述
例如:作业50秒执行一次
在这里插入图片描述

执行:

在这里插入图片描述

查看结果:

与转换一致:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值