KETTLE使用手册

介绍:Kettle是一个开源的ETL工具,它可以实现数据的抽取、转换、和加载。在Kettle中,数据抽取和转换的处理过程是通过kjb(作业)和ktr(转换)来实现的。本手册将介绍如何配置数据库连接,设置变量,使用Kettle中的控件设计ETL流程。

一、数据库连接配置

1.打开Kettle,创建新的工作空间

2.在工作空间中,右击“数据库连接”,选择“新建数据库连接”

3.填写连接信息,包括数据库类型、主机名、端口号、数据库名、用户名和密码等,然后点击“测试连接”按钮进行连接验证

4.连接验证通过后,点击“保存”按钮保存连接信息

kettle JavaScript 新加当前时间字段_数据

 

 

二、变量设置

1.打开Kettle,创建新的工作空间

2.在工作空间中,右击“变量”,选择“新建变量”

3.填写变量名和变量值,变量值可以是字符串、数字、日期等,也可以引用其他变量

4.点击“保存”按钮保存变量信息

 

kettle JavaScript 新加当前时间字段_数据_02

kettle JavaScript 新加当前时间字段_字段_03

 

三、kjb与ktr

1.在Kettle中,kjb用于组织ktr,可以看作是ktr之间的调度器,而ktr则是具体的ETL操作

2.创建kjb:在工作空间中,右击“作业”,选择“新建作业”,然后在作业中添加ktr(需要注意作业的执行顺序)

 

四、控件

1.sql脚本:

场景:用于执行自定义的SQL语句,可以用来查询、插入、更新、删除等操作。配置时需要填写数据库连接,以及SQL语句和参数等信息

使用说明:

右键单击空白区域,选择“输入”>“SQL脚本”将其拖入转换中。

双击“SQL脚本”组件,编辑脚本内容。可以选择是否只输出结果集或者执行脚本。

可以自定义SQL语句或使用变量替换SQL语句。

可以通过其他组件将SQL脚本的结果输出。

kettle JavaScript 新加当前时间字段_字段_04

 

2.表输入:

场景:用于从数据库中读取数据。需要配置查询语句、数据库连接和查询参数等信息

使用说明:点击“核心对象”下方则显示可以在转换中能使用的所有组件。点击“输入”--单击“表输入”把“表输入”组件往空白处拖入即可。

双击“表输入”组件弹出

步骤名称:默认为“表输入”,如果想规范化建议填写源表名称信息,以便清楚查询是某张表结构信息

数据库连接:选择数据来源数据源名称

SQL:编写查询源数据SQL脚本,可以通过“获取SQL查询语句…”获取。

允许简易转换:强烈建议默认

替换SQL语句里的变量:如果SQL语句中有使用到变量则需要勾选

从步骤插入数据:默认

执行每一行:默认

记录数量限制:0表示默认,如果有特殊需求可以自定义只查询出多少条记录数

注:在表输入的SQL语句中一定不能加入分号;

如果无法确定SQL语句是否正常时可以通过“预览”来查看SQL语句是否正确。

kettle JavaScript 新加当前时间字段_字段_05

 

3.表输出:

场景:用于将数据写入数据库中。需要配置表名、数据库连接、操作类型(插入或更新)以及需要插入或更新的字段等信息

使用说明:拖入“表输出”后,我们通过按住“Shift”键单击源划向目标“表输出”,则会出现源指向目标的箭头线。双击“表输出”

步骤名称:默认为“表输入”,如果想规范化建议填写目标表名称信息,以便清楚查询是某张表结构信息

数据库连接:选择数据来目标数据源名称

目标模式:schema,Oracle数据库则是用户名。

目标表:从源数据输出到目标表名

提交记录数:设置数据库提交大小

裁剪表:清空目标表数据,相当于Oracle数据库Truncate语法

忽略插入错误:当插入数据库出错时则可以忽略

指定数据库字段:手动指定源与目标字段映射关系(表结构一致可不选)

数据库字段->获取字段:获取流里的字段

->输入字段映射:手动指定映射关系

kettle JavaScript 新加当前时间字段_字段_06

 

4.字段选择:

场景:用于选择需要操作的字段。需要选择操作类型(包括保留、删除、重命名、增加常量等)、输入字段以及输出字段信息

使用说明:

右键单击空白区域,选择“转换”>“字段选择”将其拖入转换中。

双击“字段选择”组件,选择需要保留的字段。

可以进行字段重命名和排序。

可以通过其他组件将需要进行字段选择的表或查询结果输入到字段选择组件中。

kettle JavaScript 新加当前时间字段_字段_07

 

5.插入更新:

场景:用于将数据插入数据库中,如果数据已存在,则更新数据。需要选择目标表和主键信息

使用说明:

右键单击空白区域,选择“输出”>“插入更新”将其拖入转换中。

双击“插入更新”组件,配置“数据库连接”、“目标表”、“指定更新键”等信息。

可以选择需要更新的字段和插入的字段。

可以通过其他组件将需要进行插入更新的数据输入到插入更新组件中。

kettle JavaScript 新加当前时间字段_java_08

 

 

6.设置常量:

场景:用于将常量赋值给字段。需要选择字段、操作类型和需要赋的值等信息

使用说明:

右键单击空白区域,选择“转换”>“增加常量”,或者“输入”>“自定义常量数据”将其拖入转换中。

双击“设置常量”组件,配置常量名称和值。

可以直接设置常量的值,也可以根据需要使用变量设置常量的值。

可以通过其他组件将需要使用的常量传递到设置常量组件中

kettle JavaScript 新加当前时间字段_数据_09

 

 

五、webservice

场景:用于从Web Service读取数据。需要设置请求URL、请求方法、请求头、请求体等信息。

使用说明:

右键单击空白区域,选择“查询”>“Web服务查询”将其拖入转换中。

双击“Web服务查询”组件,配置访问Web服务查询的请求信息。

可以添加输入参数、HTTP头参数等信息。

可以通过其他组件将需要从Web服务获取或推送的数据传递到Web服务查询组件中。

kettle JavaScript 新加当前时间字段_数据_10

 

 

六、HTTP请求

场景:用于通过HTTP协议进行数据交互。需要设置URL、请求方法、请求参数,请求头、请求体等信息。

使用说明:

右键单击空白区域,选择“查询”>“HTTP web service”将其拖入转换中。

双击“HTTP web service”组件,配置访问HTTP服务器的请求信息。

可以添加请求头、请求参数等信息。

可以通过其他组件将需要从HTTP服务器获取或推送的数据传递到HTTP请求组件中。

kettle JavaScript 新加当前时间字段_java_11

 

七、JS脚本

场景:用于执行Javascript脚本,可以实现更复杂的ETL操作。需要编写Javascript脚本,并在Kettle中执行。

使用说明:

右键单击空白区域,选择“脚本”>“JavaScript代码”将其拖入转换中。

双击“JavaScript代码”组件,编辑JavaScript脚本。

可以使用脚本对输入的数据进行转换和操作。

可以通过其他组件将需要进行JavaScript脚本处理的数据输入到JS脚本组件中。

kettle JavaScript 新加当前时间字段_字段_12