1、Kettle 使用方法介绍1、Kettle 概念Kettle 是一款国外开源的 ETL 工具,纯 java 编写,可以在 Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员 MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle 这个 ETL 工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle 中有两种脚本文件,transformation 和 job, transformation 完成针对数据的基础转换,job 则完成整个工作流的控
2、制。2、下载和部署下载 kettle 压缩包,因 kettle 为绿色软件,解压缩到任意本地路径即可3、Kettle 环境配置1.安装 JDK(略)2.测试 JDK 安装成功(略)3.运行 KettleWindows 下找到$KETTLE_HOME/spoon.dat,双击运行欢迎界面如下图所示:4、KETTLE 组件介绍与使用4.1 Kettle 使用Kettle 提供了资源库的方式来整合所有的工作, ;1)创建一个新的 transformation,点击 保存到本地路径,例如保存到 D:/etltest 下,保存文件名为 Trans,kettle 默认 transformation 文件保
3、存后后缀名为 ktr;2)创建一个新的 job,点击 保存到本地路径,例如保存到 D:/etltest 下,保存文件名为Job,kettle 默认 job 文件保存后后缀名为 kjb;4.2 组件树介绍4.2.1Transformation 的主对象树和核心对象分别如下图:Transformation 中的节点介绍如下:Main Tree:菜单列出的是一个 transformation 中基本的属性,可以通过各个节点来查看。DB 连接:显示当前 transformation 中的数据库连接,每一个 transformation 的数据库连接都需要单独配置。Steps:一个 transforma
4、tion 中应用到的环节列表Hops:一个 transformation 中应用到的节点连接列表核心对象菜单列出的是 transformation 中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加:Input:输入环节Output:输出环节Lookup:查询环节Transform:转化环节Joins:连接环节Scripting:脚本环节4.2.2 Job 的主对象树和核心对象分别如下图:Main Tree 菜单列出的是一个 Job 中基本的属性,可以通过各个节点来查看。DB 连接:显示当前 Job 中的数据库连接,每一个 Job 的数据库连接都需要单独配置。Job entries/作
5、业项目:一个 Job 中引用的环节列表核心对象菜单列出的是 Job 中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。每一个环节可以通过鼠标拖动来将环节添加到主窗口中。并可通过 shift+鼠标拖动,实现环节之间的连接。4.3 使用举例 14.3.1 建立转换选中列表中的的“表输入” 、 “表输出” 、 “插入/更新” ,拖拽到右侧工作区。鼠标选中节点键盘按 shift 键,拖拽即可连线。下图是一个转换,有两个动作,一是直接从数据源表同步数据到目标表,一是检查源表的插入和更新,同步到目标表。黑色线为生效,灰色线为失效,节点和连接可双击进行编辑。可预览数据是否正确。双击编辑表输出动作。
6、要获取的字段设置如下所示:操作的数据库名点击“Enter field mapping/输入字段映射 ”进行字段选择。选择要用的字段后点确定,注意字段的约束条件。编辑好后点击上面的执行即可。左侧参数暂不说明,执行完成后可以观看下方的日志。双击编辑“插入/更新”动作。然后点击运行。执行前,在源库里加条新纪录。确定作业执行正常后可以保存作业,如保存路径到本地磁盘地址 C: etl2.ktr。4.3.2 建立执行的 JOB/作业建立 JOB 的前提是有可以完整执行的作业,上面步骤定制的作业进行保存。从左侧列表拖拽“START” , “Success”, “转换” , “发送邮件”到工作区并连接,如下图
7、。然后双击“START”动作进行编辑。然后双击编辑“Transformation ”活动。转换文件名选择上一步编辑好的.ktr 文件双击发送邮件,参数设置如下:编辑完成后直接点击运行即可。运行后查看日志。当任务执行以后可以查看相对应的日志,也可自行配置日志。4.4 使用举例 2本例是完成读取目录下的.log 文件,找出其中包含错误代码的行,并统计个数4.4.1 新建 Transformation本例所用到的步骤和组件如下图所示:连接图如下所示:a)获取文件名设置如下:其中已选择的文件名称的变量都需要手写输入,可以点击显示文件名和预览记录检查是否配置正确。b)文本文件输入设置如下:文本文件输入选
8、项中选择从上一步骤获取文件名,其中在输入里的字段被当做文件名一栏输入 uri,步骤读取的文件名来自填写获取文件名 2内容选项卡的设置如下:文件类型选择 CSV,分隔符自己定义,格式为 mixed,编码方式选择 UTF-8字段选项可设置如下:需要手写输入 str 名称,设置类型为 Stringc)获取字符串设置如下:d)测试脚本设置如下其中可以点击获取变量和测试脚本来测试脚本的正确性点击测试脚本界面如下:脚本代码由 JavaScript 编写e)聚合记录聚合记录就是将上一步的结果进行聚合,这里的名称字段是点击获取字段获取的,而不是自己输入的,new name 一列是制定新名字,可以自己输入填写,f)文本文件输出文本文件的输出设置如下,其中字段属性的设置名称字段是点击获取字段自动获取的,不是输入的,设置如下g)运行日志显示如下:4.4.2 建立 JobJob 的建立于 4.3 中方法一样,用到的组件如下所示转换组件设置如下:将上一步保存的*.ktr 添加到转换名文件路径中点击运行按钮:生成日志如下所示: