KETTLE使用手册
介绍:Kettle是一个开源的ETL工具,它可以实现数据的抽取、转换、和加载。在Kettle中,数据抽取和转换的处理过程是通过kjb(作业)和ktr(转换)来实现的。本手册将介绍如何配置数据库连接,设置变量,使用Kettle中的控件设计ETL流程。
- 数据库连接配置 (需要用到数据库数据时添加)
主对象树-》DB连接
Oracle配置:
右键DB连接-》新建-》选择一般-》找到数据库Oracle-》默认Native(JDBC)方式
填写连接名称、ip地址、数据库名称、数据库端口、用户名、密码
Mysql配置:
右键DB连接-》新建-》选择一般-》找到数据库MySQL-》默认Native(JDBC)方式
填写连接名称、ip地址、数据库名称、数据库端口、用户名、密码
- 作业 (kjb)
介绍:在Kettle中,kjb用于组织ktr,可以看作是ktr之间的调度器,而ktr则是具体的ETL操作
创建流程:
点击左上角上的“+”-》新建“作业”-》选取start组件添加-》添加设置变量组件-》添加转换主键-》添加成功组件
- Start组件: 作业或变换的起点(可根据需要设置定时器
2.设置变量:用于设置变量,可设置变量的有效范围
0:改步骤的名称
1:变量的名称,规范V_参数名
2:变量的值,固定的值或者${参数名}(获取参数重新设置有效范围)
3:变量的有效范围,jvm,作业或者转换...
3.转换:在整个job中可引用其它转换流程
0:转换在改作业中的步骤命名
1:选取该转换的绝对路径
2:设置该转换中的参数
4.成功:作业或变换的终点
- 转换(ktr)
介绍:在Kettle中,kjb用于组织ktr,可以看作是ktr之间的调度器,而ktr则是具体的ETL操作
(下列转换是请求互联网生成一年的法定节假日日历并存入数据库中,且生成一份excle文件到本地)
设置该转换的参数,右键转换-》选择转换设置(ctrl+T)-》选择命名参数-》
1:参数名称(规范V_参数名)2:参数值
1.生成记录
1:步骤命名
2:生成数量(因为该转换只生成当月,一个月最多31天)
3:生成固定的字段固定值(可为空)
4:预览,可以查看是否是需要的数据
2.增加序列
1:步骤名称
2:生成的值名称(后续引用的属性名)
3:通过数据库来获取序列,数据库连接、序列名称
4:通过计数器来计算序列,根据需求输入起始值,增长值,最大值
3. 获取变量
获取传到转换的参数,该转换中的参数是从转换属性中设置获取到的,也可以从上一层的作业中获取
0:步骤名称
1:属性名,获取到变量后续使用的名称
2:${变量名称},获取到变量
3:变量数据类型
4. JavaScript脚本
根据自定义脚本去执行对应的操作
0:步骤名称
1:输入参数(从上面步骤获取到的变量,可以直接点击在代码块中使用)
必须使用连接线连接后才能获取到这些参数
2:参数的使用,可以点击(以免出错)自动输入到代码块,也可以输入变量
3:代码块,根据自己的需求编写JavaScript代码
4:输出变量,可以点击获取变量直接全部添加,可以根据需求更改名称添加输出变量
5. http请求
填写对应的url进行请求,返回对应的结果
0:步骤命名
1:url请求地址链接
2:是否使用字段中的地址,还是固定地址
3:字段中的地址的属性变量名
4:返回结果参数名
6.Json 输入
0:步骤名称
1:勾选原定义在一个字段里(这里的字段名是上面结果中的result)
2:需要解析的字段及来源格式
如下图2:名称:解析到结果后面用的字段名,路径:要解析到的字段位置$..字段名(第一层),类型:字段的类型
7. switch/case
根据字段不同的值调用不同的目标步骤
0:步骤命名
1:switch字段(判断的字段)
2:字段的值的数据类型
3:当判断的字段等于该值时执行对应的步骤
4:当判断的字段等于前面的值时执行的目标步骤
8.设置字段值
更改某个值为另一个变量的值
0:步骤命名
1:需要修改的字段名(通过前面的数据需要把某个字段设置为某个值)
2:修改的值
9.过滤记录
过滤的某个条件成立的数据
0:步骤命名
1:判断条件
2: 符合下面条件的数据执行下一步的目标
9.字段选择
选择要使用的数据字段
0:步骤命名
1:需要的字段,选择需要用到的数据字段
2:重命名字段属性名
10.插入/更新:
对应数据库连接,对应的条件,对应的字段更新或新增
0:步骤命名
1:选择连接的数据库
2:选择数据存放的目标表
3:提交的数据量
4:查询与数据库字段判断是更新还是新增的条件
5:对应的数据库表字段
6:对应的转换中传输出来的数据字段名
7:是否更新时更新该字段的数据
11.Excel输出:
获取到的数据进行excle生成到本地,或者excle输出通过ftp上传到指定的地方
0:步骤的命名
1:生成文件的名称
2:生成的文件名后缀名
内容:设置excle格式
1:对excle文件内容进行设置
2:是否追加还是新建
3:是否需要文件内的数据头
4:工作表名称
字段:选择上个管道输出的数据
1:excle内容取的字段
2:字段名称,可以在上一层加一个字段选择重命名
- 简易转换(ktr)
1. SQL脚本
用于执行自定义的SQL语句,可以用来查询、插入、更新、删除等操作。配置时需要填写数据库连接,以及SQL语句和参数等信息
1:步骤命名
2:数据库连接,选择使用的数据库
3:sql代码区域,根据需求编写sql代码,用到变量参数用${参数名}替代,变量参数命名规则:v_名称
4:是否替换语句里的变量
2.表输入
用于从数据库中读取数据。需要配置查询语句,数据库连接和查询参数等信息
1:步骤命名
2:数据库连接,选择使用的数据库
3:sql代码区域,根据需求编写sql代码,用到变量参数用${参数名}替代,变量参数命名规则:v_名称
4:是否替换语句里的变量
5:预览:可以查看语句是否正确,且预览结果
3.字段选择
用于选择需要操作的字段。需要选择操作类型(包括保留、删除、重命名、增加常量等)、输入字段以及输出字段信息
0:步骤命名
1:需要的字段,选择需要用到的数据字段
3:获取上个步骤的所有可用参数属性
4.表输出
用于将数据写入数据库中。需要配置表名、数据库连接,把步骤中的数据字段与表字段对应插入
0:步骤命名
1:数据库连接,选择使用的数据库
2:选择数据存放的目标表
3:是否批量数据插入
4:工作流中的字段与数据库字段进行匹配
5:获取到流中的字段自动匹配(需校验更改)