ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:19.29KB ,
资源ID:5916318      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5916318.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Kettle开发使用手册.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Kettle开发使用手册.docx

1、Kettle开发使用手册Kettle 开发使用手册Kettle 开发使用手册2 0 1 7 年 4 月1Kettle 开发使用手册版 本 历 史 说 明版本 作者 日期 备注1.0 彭伟峰 2017.04.112Kettle 开发使用手册1. Kettle 介绍1.1. 什么是 KettleKettle 是纯 Java编写的、免费开源的 ETL工具,主要用于抽取 (Extraction) 、转换 (Transformation) 、和装载( Loading )数据。 Kettle 中文名称叫水壶,该项目的主程序员 MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。在这种思想的设计下

2、, Kettle 广泛用于不同数据库之间的数据抽取,例如Mysql 数据库的数据传到 Oracle ,Oracle 数据库的数据传到 Greenplum数据库。1.2. Kettle的安装Kettle 工具是不需要安装的,直接网上下载解压就可以运行了。不过它依赖于Java,需要本地有 JDK环境,如果是安装 4.2 或 5.4 版本, JDK需要 1.5 以上的版本,推荐 1.6 或 1.7 的 JDK。运行 Kettle 直接双击里面的批处理文件 spoon.bat 就行了,如图 1.1 所示:图1.13Kettle 开发使用手册2. Kettle 脚本开发2.1. 建立资源库( repos

3、itory 仓库)Repository 仓库是用来存储所有 kettle 文件的文件系统, 由于数据交换平台服务器管理 kettle 文件也是用 Repository 仓库,因此我们这边本地的 kettle 开发环境也是要用到该资源库。 建立资源库的方式是工具 - 资源库 - - 连接资源库,这时候弹出一个窗口, 我们点击右上角的 “+”号,跟着点击下面的 kettlefile repository 选项,按确定,如图 2.1 所示:图2.1跟着在右上角选择一个目录,建议在 kettle 路径下新建 repository 文件夹,再选择这个文件夹作为根目录,名称和描述可以任意写,如图 2.2

4、所示:图2.2建完后会 kettle 工具会自动连接到 repository 资源库,每次打开 kettle也会弹出一个窗口让你先连接到资源库。 在连接到资源库的情况下打开文件就是资源库所在目录了, 如图 2.3 所示。注意你在资源库建的目录结构要跟数据交换平台的目录结构一致,这样写好 kettle 脚本,保存后放的路径能跟交换平台的目录结构一致了。4Kettle 开发使用手册图2.32.2. 在目标数据库里新建表在做数据迁移的时候我们需要先在目标数据库建立与源数据库类似的表结构, 才能 在 这 两 张 表 之 间 做 数 据 迁 移 , 以 oracle 数 据 库 到 gp 数 据 库 ,

5、T_SF_DWJFDJXX_TEST表做数据迁移为例,我们先建类似的表结构,首先先把表结构的代码拷出来:create table T_SF_DWJFDJXX_TEST(NSRNBM NUMBER(10) not null,DWSBH VARCHAR2(18) not null,JFDWNBM NUMBER(10) not null,HYFL_DM CHAR(1) not null,JFDWLX_DM CHAR(3) not null,SBJC_DM CHAR(2) not null,SBGLJG_DM VARCHAR2(11) not null,SWGLJG_DM VARCHAR2(11) n

6、ot null,SBDJ_ZT CHAR(2) not null,DJSLRY_DM VARCHAR2(11),DJSL_RQ DATE,LRRY_DM VARCHAR2(11),XGRY_DM VARCHAR2(11),DJ_RQ DATE,DJJG_DM VARCHAR2(11),LR_SJ TIMESTAMP(6),XG_SJ TIMESTAMP(6),ZDFY_BJ CHAR(1),XMMC VARCHAR2(100),KNQYBZ_DM CHAR(1),ZDYCKJN_BJ CHAR(1),SJJHPT_SJ TIMESTAMP(6),SJJHPT_DZ NUMBER(14);5Ke

7、ttle 开发使用手册跟着在这个表结构的基础上,在目标数据库创建新表。需要注意的是, gp 数据库的数据类型有些跟 oracle 的一样,有些不同。相同的就不用改了,不同的就改下。以上面的数据类型为例,相同的有 char 、 date 、timestamp ,不同的是varchar2 和 number,因此, varchar2(n) 要改成 varchar(n) ,number(n) 要改成integer (注意不带数字长度 n)。建完之后,我们就可以在这不同数据库的两张表之间进行数据迁移或数据定时传输。2.3. 源数据库和目标数据库的 jndi 设置Jndi 是 kettle 连接数据库的配

8、置文件, 相当于 oracle 的 tns 。Jndi 设置的目录是在 kettle 目录下的 simple-jndi 文件夹里,打开后编辑 jdbc.properties来设置 jndi ,下面附上公司揭阳涉税项目 oracle 到 gp 数据库的 jndi 设置,分别是源端 oracle 数据库和目标端 gp 数据库。配置信息的斜杠左边是 jndi 名,这里 jndi 的命名规则是数据库名 _用户名,注意本地的 jndi 名要跟交换平台的 jndi 名一致。配置信息的斜杠右边分别是数据库类型、 驱动、数据库地址、用户名和密码。注意,相同数据库配置写法相同,不同数据库的配置写法略有不同,像下

9、面的 oracle 和 gp 数据库的 driver 和 url 地址写法就不一样。oracle_db_mhpt/type=javax.sql.DataSourceoracle_db_mhpt/driver=oracle.jdbc.driver.OracleDriveroracle_db_mhpt/url=jdbc:oracle:thin:172.16.11.91:1521:zrmhdboracle_db_mhpt/user=db_mhptoracle_db_mhpt/password=DB_MHPTgp_public/type=javax.sql.DataSourcegp_public/dr

10、iver=org.postgresql.Drivergp_public/url=jdbc:postgresql:/172.16.11.165:5432/postgresgp_public/database=8gp_public/user=gpadmingp_public/password=gpadmin2.4. 写 kettle 脚本Kettle 脚本有两种, ktr 脚本跟 kjb 脚本,其中 ktr 负责执行,具体要做什么由ktr 来负责; kjb 负责调度,调用一个或多个 ktr 。Ktr 和 kjb 的关系类似于像员工和领导之间,员工负责具体的事务操作,领导负责计划安排工作。新建ktr

11、 脚本可以点击左上角的文件 - 新建 - 转换,新建 kjb 脚本就文件 - 新建 - 作业。我们这里传输数据只要用到 kjb 脚本,一张表的数据传输要有 1 个脚本。首先先新建一个 ktr 文件,如图 2.4 所示,跟着我们按照主界面的提示拖动主键来操作。拖动组件在核心对象的组件库里。6Kettle 开发使用手册图2.4跟着我们需要 4 个组件,分别是获取变量、表输入、字符串操作、插入 / 更新,先从组件库里找到这些组件然后拖动到右边面板上, 查找组件可以用组件名称来在组建的搜索框里搜索。拖动后如图 2.5 所示。图2.5然后给他们组件之间建立连接,用拉箭头来连接即可,如图 2.6 所示:图

12、 2.67Kettle 开发使用手册组件之间连接完之后,跟着双击组件一个个编辑。第一步是获取变量,在获取变量前首先要设置入参用来获取变量, 设置变量先双击主对象树的 ktr 名(转换1 是未保存文件到本地的默认名) ,跟着设置命名参数。 如图 2.7 跟 2.8 所示。其中 start_timestamp 和 end_timestamp 这两个是数据交换平台服务器上默认的用于增量抽取数据的两个入参, 分别表示数据开始时间跟数据结束时间。 这里填上了默认值方便测试。图 2.7 图 2.8设置入参后再编辑获取变量的组件, 这里名称跟入参一样, kettle 变量名的写法是 $Variables ,

13、类型我们选择 string ,因为服务器上交换平台传进来的start_timestamp 和 end_timestamp 参数也是 string 类型的,我们这里跟它一致。也如图 2.9 所示:8Kettle 开发使用手册图2.9第二步是表输入,首先要先连接数据库, 之前我们在本地文件上配置了 jndi ,这里 jndi 就用得上。新建或编辑数据库连接,选择好连接的数据库,还有 jndi 连接方式,再填上 jndi 名称和连接名称,设置完了就点击左下角的测试来测试本地能不能连上数据库。连上了我们才做其他的步骤。图2.10连通好后,写好 sql 语句。这里 sql 语句用到变量, kettle

14、变量的写法是 $variables ,而使用变量要在左右两端再加上单引号, 变成 $variables 。注意数据库后台的日期类型是 date ,而变量是字符串类型,因此需要做个变量的类型转换。因为有使用变量, 所以需要勾上 “替换 sql 语句里的变量” 单选框。设置好后可以预览下数据看下。9Kettle 开发使用手册图 2.11第三步是字段去除左右空格,编辑“字符串操作”,点 get fields 获取从上个步骤表表输入获取的字段名,然后把 trim type 全部选择 both ,意思是去除字段左右两端的空格。如果 get fields 得到的字段有 start_timestamp 和e

15、nd_timestamp 这两个,这两个多余的,就删去。如下图所示:图2.12第四步是插入数据到目标端的新表,首先是要先连通目标端的数据库。设置好后再点击“测试”连通到目标端的数据库。10Kettle 开发使用手册图2.13跟着是设置目标表(目标模式可以不填),点击浏览选择模式 / 用户下的数据库表。然后设置每插入多少条数据提交的提交记录数量, 用来查询的关键字选择主键的字段,而更新字段是全部,点击获取字段即可。他这里操作的原理是:如果目标表有符合该查询的条件的记录时, 那么更新此条数据; 不符合时,那么将源表的此条数据插入到目标表。11Kettle 开发使用手册图 2.14这四个步骤编辑完成

16、后最后就是执行这四个步骤了,点击左上角的运行图标,设置时间参数或者时间参数按照默认值, 运行后,如果全部组件都有绿色勾勾的标志的话说明全部运行成功, 如下图所示。如果某一个步骤失败的话就是红色勾勾的标志, 这时候就要看日志或者步骤度量来分析了。 从下面的步骤度量看表输入有 1 条数据输入进来,插入 / 更新步骤有 1 条数据写进去了。12Kettle 开发使用手册图2.153.在数据交换平台设置定时任务以公司这边的数据交换平台为例( http:/172.16.11.17:9001/WebContent13Kettle 开发使用手册admin/admin ),如果交换平台的 jndi 设置没有设

17、置的话, 那么要首先设置这样跑 kettle 脚本的话才能连到数据库,注意本地 kettle 的 jndi 名要跟交换平台的 jndi 名一致,需要统一命名。图3.1跟着将脚本放上服务器,可以在页面上上传文件到服务器。图3.214Kettle 开发使用手册上传好后,需要先跑一回脚本跑成功才能设置定时调度,所以我们先运行一次。注意数据的起始时间( start_timestamp )默认是 1970 年,首次运行可以改下。数据的结束时间( end_timestamp )是当前的时间点。图3.3运行成功后,跟着再设定时任务,按要求设置调度频率。图3.415Kettle 开发使用手册最后再通过运行日志监控调度的情况。如果失败的话,可以点击“查看”看运行详情,里面的“再次运行”可以重跑数据。运行详情最右侧的“查看”可以看日志信息,万一数据跑失败可以通过日志来分析情况。图3.516

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2