Kettle进阶开发(胡春阳)

上传人:油条 文档编号:28531962 上传时间:2018-01-18 格式:DOC 页数:12 大小:470.50KB
返回 下载 相关 举报
Kettle进阶开发(胡春阳)_第1页
第1页 / 共12页
Kettle进阶开发(胡春阳)_第2页
第2页 / 共12页
Kettle进阶开发(胡春阳)_第3页
第3页 / 共12页
Kettle进阶开发(胡春阳)_第4页
第4页 / 共12页
Kettle进阶开发(胡春阳)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《Kettle进阶开发(胡春阳)》由会员分享,可在线阅读,更多相关《Kettle进阶开发(胡春阳)(12页珍藏版)》请在金锄头文库上搜索。

1、KETTLE 进阶开发V0.1成果状态 申报人及审核人 日 期申 报 胡春阳 2009 年 4 月 13 日初 审 于洋 2009-4-29终 审 程宏斌 2009-5-12知识成果名称 KETLLE 进阶开发所属目录 研发类 版本号 V0.1- 1 -知识成果简要信息表成果名称 KETTLE 进阶开发分类层次 研发类关键字 ETL 开源适用范围 在初步了解 KETTLE 安装配置的基础上进一步深入使用针对数据库的 Mapping、Work Flow 实例介绍Mapping 设计、Transformations 组件介绍Work Flow 设计、Jobs 组件介绍内容摘要总结成果形式 Word

2、 文档参考文档 Kettle 简单实例创建人 胡春阳 创建时间 2009-04-13修订日期 版本号 说明 作者版本信息审核状态 审核人 通过审核日期 审核意见初审 于洋 2009-4-29该文档是Kettle 简介的姊妹篇,对 kettle 近一步研究,针对实例对相关组件进行介绍。终审 程宏斌 2009-5-12 终审通过,分类为“经验积累” ;可作为实验课程给新人学习指导。知识成果名称 KETLLE 进阶开发所属目录 研发类 版本号 V0.1- 2 -一、 概要Kettle 是一款国外开源的 ETL 工具,纯 java 编写,绿色无需安装,数据抽取高效稳定。Kettle 中有两种脚本文件,

3、transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。本文在假设已经掌握了对 Kettle 的安装及简单功能使用的基础上,进行深入研究。否则,请参考知识库中的 Kettle 简单实例文档。在本文中,首先通过一个基于 Oracle数据库的 ETL 实例,包含两个 Transformation(相对于 Informatica 的 Mapping)和一个 Job(相当于 Informatica 的 Work Flow) ,使读者对 Kettle 进行 ETL 有一个较为深刻的认识。接着对 Transformation 与 Jo

4、b 的组件进行功能阐述。最后是本人在使用中对 Kettle 的一些想法。二、 实例讲解1. Kettle 工具启动通过双击 Kettle 程序文件夹下的 spoon.bat 文件,启动 Kettle 工具,出现下图:若创建并选择资源库(相当于 Informatica 中的 Repository) ,通过知识成果名称 KETLLE 进阶开发所属目录 研发类 版本号 V0.1- 3 -Kettle 开发出的程序将存在知识库中,若选择没有资源库,则开发出的程序将以文件的形式固化在磁盘中。2. 实例说明实例 1 为一个 Oracle 数据库表到文本文件的 Transformation 过程,实例2 为

5、一个文本文件到 Oracle 数据库表的 Transformation 过程,实例 3 为一个Job 过程,将上两个 transformation 一起在同一个 job 里面调用执行。3. 实例 1从交易信息表(TRADE) ,帐户信息表(ACCOUNT_M) ,客户信息表(CUST)中抽取交易相关的所有信息,通过交易表查询帐户表的信息,通过帐户表的信息查询客户表的信息,并判断客户类型是否为 VIP 客户分别进行处理,输出到文本文件中。4. 创建 Transformations、Jobs点击页面左上角的 创建一个新的 transformation,点击保存到本地路径,例如保存到 D:Kettl

6、eProjecttest 下,保存文件名为testTrans,kettle 默认 transformation 文件保存后后缀名为 ktr。点击页面左上角的 创建一个新的 job,点击保存到本地路径,例如保存到 D:KettleProjecttest 下,保存文件名为 testJob, kettle 默认job 文件保存后后缀名为 kjb。也可以通过双击左侧 Main Tree 下的 Transformations、Jobs 节点来完成。5. 创建数据库链接在 testTrans 标签页下,点击左边的【Main Tree】 ,双击【DB 连接】 ,进知识成果名称 KETLLE 进阶开发所属目录

7、 研发类 版本号 V0.1- 4 -行数据库连接配置。出现下图:配置项 含义Connection name 自命名连接名称Connection type 选择需要连接的数据库Method of access 选择连接类型Server host name 写入数据库服务器的 IP 地址Database name 写入数据库名Port number 写入端口号Username 写入用户名Password 写入密码点击【test】 ,测试配置是否成功。6. Transformation-数据源设计在 testTrans 标签页下,点击左侧的【Core Objects】 ,点击【Input】 ,知识成

8、果名称 KETLLE 进阶开发所属目录 研发类 版本号 V0.1- 5 -选中【表输入】 ,拖动到主窗口释放鼠标。双击【表输入】图标,数据库连接选择刚刚创建好的 LocalOra 数据库连接,在主窗口写入对应的查询语句 Select * from trade7. Transformation-Lookup 组件使用点击左侧的【Lookup】 ,选中【数据库查询】 ,拖动到主窗口释放鼠标。建立其与表输入环节的链接。双击【数据库查询】图标,步骤名称写入 ACCOUNT_M 表查询,数据库连接选择刚刚创建好的 LocalOra 数据库连接,查询的表写入 ACCOUNT_M,查询所需的关键字中,表字段

9、写入 ACCTNO,比较操作符写入“=” ,字段 1 写入ACCTNO。在查询表返回的值里面写入 CUSTNO,确定完成。同上,再创建一个数据库查询,命名为客户信息表查询,查询的表写入CUST,查询所需的关键字写入 CUSTNO=CUSTNO,查询表返回的值写入CUSTNAME,CUSTADDRESS,CUSTTYPE,确定完成。完成后,如下图:8. Transformation-Filter 组件与脚本组件的结合使用点击左侧的【Scripting】 ,选中两个【Modified Java Script Value】 ,拖动到主窗口释放鼠标。分别双击打开,重命名为“对 VIP 用户修改”和“对

10、 Normal 用户修改” 。同时,分别创建【过滤记录】和【对 VIP 用户修改】 、【对 Normal 用户修改】的连接。点击左侧的【Transform】 ,选中【过滤记录】 ,拖动到主窗口释放鼠标。双击【过滤记录】打开,第一个里面选择 CUSTTYPE,点击,在 Enter value 里面写入 VIP,单击确定。在发送 true 数据给步骤里,选择知识成果名称 KETLLE 进阶开发所属目录 研发类 版本号 V0.1- 6 -【对 VIP 用户修改】 ,在发送 false 数据给步骤里,选择【对 Normal 用户修改】,确定保存。完成后,如下图:双击【对 VIP 用户修改】 ,在里面写

11、入 javascript 脚本语句:/在数据流中创建一个新的数据字段var custTypeCN = 对 VIP 用户进行修改 ; /修改已有数据字段中的值var custName = English: ;custName +=CUSTNAME.getString();CUSTNAME.setValue(custName);双击【对 Normal 用户修改】 ,在里面写入 javascript 脚本语句:var custTypeCN = 对普通用户进行修改 ;注意:这块出现了 Kettle 中相对 Informatica 较为实用方便的一个组件,脚本组件,其中可以通过书写 JS 脚本对数据进行

12、处理,大大改善了在Informatica 中只能死套公式的局面。9. Transformation-常量组件的使用点击左侧的【Transform】 ,选中两个【增加常量】 ,拖动到主窗口释放鼠标。分别双击打开,重命名为“增加对 VIP 常量”和“增加对 Noraml 常量” 。知识成果名称 KETLLE 进阶开发所属目录 研发类 版本号 V0.1- 7 -分别建立【对 VIP 用户修改】和【对 Normal 用户修改】与【增加对 VIP 常量】和【增加对 Noraml 常量】的连接。双击【增加对 VIP 常量】 ,名称写入 value,类型选择 string,值写入“这是一笔 VIP 用户的交

13、易” ,确定保存。同理,双击【增加对 Noraml 常量】 ,名称写入 value,类型选择 string,值写入“这是一笔 Noraml 用户的交易” ,确定保存。完成后,如下图:10.Transformation-目标设计点击左侧的【Output】 ,选中【文本文件输出】 ,拖动到主窗口释放鼠标。建立【增加对公常量】 , 【增加对私常量】和【文本文件输出】的连接。完成后,如下图:双击打开【文本文件输出】 ,文件名称写入D:KettleProjecttestfile.txt,点击内容标签,根据情况进行修改,例如:分隔符、编码,点击字段标签名称依次写入tradeno,ACCOUNT_DATE,

14、CUSTNAME,CUSTADDRESS,CUSTTYPE,custTypeCN,CValue,类型根据各个字段实际类型进行选择。点击 运行这个转换。知识成果名称 KETLLE 进阶开发所属目录 研发类 版本号 V0.1- 8 -11. 实例 2将上一个 ktr 生成的文本导入到数据库表【TRADECUSTACCINFOR】中。12.Transformation 设计创建一个 transformation,命名为 EtltestTransfile2db.ktr,创建数据库连接 LocalOra,点击【Input】 ,选中【文本文件输入】 ,拖到主窗口,释放鼠标,双击打开文件名称里面写入 D:K

15、ettleProjecttestfile.txt。点击字段标签,名称依次写入TRADENO,ACCOUNT_CREATEDATE,CUST_NAME,CUST_ADDRESS,CUST_TYPE,CUST_TYPE_CN,ACCOUNT_CN,类型根据各个字段实际类型进行选择。点击【Transform】 ,选中【字段选择】 ,拖到主窗口,释放鼠标,点击【Output】 ,选中【表输出】 ,拖到主窗口,释放鼠标。建立【文本文件输入】和【字段选择】与【字段选择】和【表输出】的连接。完成后,如下图:点击 运行这个转换。13. 实例 3将上两个 transformation 一起在同一个 Job 里面

16、调用执行。14.Job 设计在 testJob 标签页,点击【Core Objects】 ,点击【Job entries】 ,选中【START】拖动到主窗口释放鼠标,选中【Delete file】拖动到主窗口释放鼠知识成果名称 KETLLE 进阶开发所属目录 研发类 版本号 V0.1- 9 -标,在 File name 中写入 D:KettleProjecttestfile.txt,再选中两个【Transformation】 ,拖动到主窗口释放鼠标,建立【START】和【Transformation】与【Transformation】之间的连接。双击第一个【Transformation 】 , 在 Transformation filename 中写入D:KettleProjecttesttestTrans.ktr,确定保存。同理双击另外一个【Transformation】 ,路径指向D:KettleProjecttesttestTr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号