Kettle6.1安装部署及使用教程贵在详细截图说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、Kettle概念
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix 上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
2、下载和部署
下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可.
下载kettle包,并解压
压缩包:(这里使用的是Kettle6.1版本)
解压:
3、Kettle环境配置
3.1安装JDK(略)
3.2测试JDK安装成功(略)
JDK安装步骤见《Jdk1.6_win7_64安装及配置环境变量.docx》强调:kettle6.1版本,必须配套使用JDK1.7及以上版本。
3.3运行Kettle
Windows下找到$KETTLE_HOME/spoon.bat,双击运行.
欢迎界面如下图所示:
4、Kettle组件介绍与使用
4.1 Kettle使用
Kettle提供了资源库的方式来整合所有的工作,;
1)创建一个新的transformation,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为Trans,kettle默认transformation文件保存后后缀名为ktr;
2)创建一个新的job,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为Job,kettle默认job文件保存后后缀名为kjb;
4.2 组件树介绍
4.2.1 Transformation的主对象树和核心对象分别如下图:
Transformation中的节点介绍如下:
Main Tree:菜单列出的是一个transformation中基本的属性,可以通过各个节点来查看。
DB连接:显示当前transformation中的数据库连接,每一个transformation的数据库连接都需要单独配置。
Steps:一个transformation中应用到的环节列表
Hops:一个transformation中应用到的节点连接列表
核心对象菜单列出的是transformation中可以调用的环节列表,可以通过鼠标拖动的方式对
环节进行添加:
Input:输入环节
Output:输出环节
Lookup:查询环节
Transform:转化环节
Joins:连接环节
Scripting:脚本环节
4.2.2 Job的主对象树和核心对象分别如下图:
Main Tree菜单列出的是一个Job中基本的属性,可以通过各个节点来查看。
DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置。
Job entries/作业项目:一个Job中引用的环节列表
核心对象菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。
每一个环节可以通过鼠标拖动来将环节添加到主窗口中。
并可通过shift+鼠标拖动,实现环节之间的连接。
4.2.3 kettle的简单使用
DB连接
我们可以看到转换的主对象树和核心对象区域,然后我们添加一个DB连接。
选择“主对象树”,双击“转换”标签下的“DB连接”会弹出一个配置窗口。
填入连接名称,选择连接类型,配置数据库设置,然后测试下配置是否正确。
由于kettle没有将所有数据库的Driver文件集成,所以如果想连接指定的数据库,需要自己下载JDBC驱动,放入指定的lib目录下。
添加完JDBC驱动后,必须重启kettle才能正确加载驱动(添加oracle数据库的jdbc驱动,参见6、常见问题6.1【Kettle】JDBC连接oracle 报找不到驱动)。
注:在转换之前需要创建转换所需的表,原始表和转换的目标表。
点击“核心对象”标签页中的“输入”,选择“表输入”拖到“转换”区域。
双击“表输入”图标弹出表输入对话框,填入步骤名称,选择数据库连接,点击“获取SQL查询语句”,或者直接写入SQL语句,填写附件信息,点击“预览”按钮查看执行结果,没有错误,点击“确认”关闭对话框。
点击“核心对象”—“输出”,选择“Excel输出”拖入到转换区,双击Excel输出图标,弹出对话框,选择文件名和其它附加参数,点击确认。
点击输入表的图标,同时按下shift键,再点击输出文件,将两者连接起来。
然后双击Excel 输出进行配置。
最后一步就是执行kettle脚本,点击工具栏的播放箭头即可。
点击“启动”开始转换,在转换过程中会出现转换的信息,如下图所示。
完成转换后,我们可以在Excel输出目录中查看转换结果。
注:时间字段转换到Excel为空,修改SELECT语句中使用TO_CHAR转换成字符串,例如:to_char(start_time,’yyyy-mm-dd HH24:MM:SS’) as start_time.
注:Excel(2007之前版本)中的记录不能超过65535条,否则会自动关闭文件,导致转换失败。
至此,一个简单的数据迁移脚本,从oracle数据库导出数据到EXCEL文件中就大功告成了。
4.3使用举例1
选中列表中的的“表输入”、“表输出”、“插入/更新”,拖拽到右侧工作区。
鼠标选中节点键盘按shift键,拖拽即可连线。
下图是一个转换,有两个动作,一是直接从数据源表同步数据到目标表,一是检查源表的插入和更新,同步到目标表。
黑色线为生效,灰色线为失效,节点和连接可双击进行编辑。
可预览数据是否正确。
双击编辑表输出动作。
操作的数据库名要获取的字段设置如下所示:
点击“Enter field mapping/输入字段映射”进行字段选择。
选择要用的字段后点确定,注意字段的约束条件。
编辑好后点击上面的执行即可。
左侧参数暂不说明,执行完成后可以观看下方的日志。
双击编辑“插入/更新”动作。
然后点击运行。
执行前,在源库里加条新纪录。
确定作业执行正常后可以保存作业,如保存路径到本地磁盘地址C:\etl2.ktr。
建立JOB的前提是有可以完整执行的作业,上面步骤定制的作业进行保存。
从左侧列表拖拽“START”,“Success”,“转换”,“发送邮件”到工作区并连接,如下图。
然后双击“START”动作进行编辑。
然后双击编辑“Transformation”活动。
转换文件名选择上一步编辑好的.ktr文件
双击发送邮件,参数设置如下:
编辑完成后直接点击运行即可。
运行后查看日志。
当任务执行以后可以查看相对应的日志,也可自行配置日志。
4.4使用举例2
本例是完成读取目录下的.log文件,找出其中包含错误代码的行,并统计个数本例所用到的步骤和组件如下图所示:
连接图如下所示:
a)获取文件名设置如下:
其中已选择的文件名称的变量都需要手写输入,可以点击显示文件名和预览记录检查是否配置正确。
b)文本文件输入设置如下:
文本文件输入选项中选择从上一步骤获取文件名,其中在输入里的字段被当做文件名一栏输入uri,步骤读取的文件名来自填写获取文件名2
内容选项卡的设置如下:
文件类型选择CSV,分隔符自己定义,格式为mixed,编码方式选择UTF-8
字段选项可设置如下:
需要手写输入str名称,设置类型为String
c)获取字符串设置如下:
d)测试脚本设置如下
其中可以点击获取变量和测试脚本来测试脚本的正确性
点击测试脚本界面如下:
脚本代码由JavaScript编写
e)聚合记录
聚合记录就是将上一步的结果进行聚合,这里的名称字段是点击获取字段获取的,而不是自己输入的,new name一列是制定新名字,可以自己输入填写,
f)文本文件输出
文本文件的输出设置如下,
其中字段属性的设置名称字段是点击获取字段自动获取的,不是输入的,设置如下
g)运行日志显示如下:
Job的建立于4.3中方法一样,用到的组件如下所示
转换组件设置如下:
将上一步保存的*.ktr添加到转换名文件路径中
点击运行按钮:
生成日志如下所示:
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
6、常见问题解决
6.1 【Kettle】JDBC连接oracle报找不到驱动
初次接触kettle,环境都配置好以后,启动kettle的spoon,新建作业,配置jdbc的oracle 数据源连接,报找不到驱动。
解决办法:
1、下载OJDBC14.jar包
2、将该包拷贝到kettle的~\data-integration\libswt或者~ \data-integration\lib路径下都可以。
3、重启kettle,重新配置数据源连接。
问题解。
31。