Kettle开发使用手册范本_第1页
Kettle开发使用手册范本_第2页
Kettle开发使用手册范本_第3页
Kettle开发使用手册范本_第4页
Kettle开发使用手册范本_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、数据库。1.2. Kettle的安装Kettle工具是不需要安装的,直接网上下载解压就可以运行了。不过它依 赖于Java,需要本地有JDK环境,如果是安装4. 2或5. 4版本,JDK需要1.5 以上的版本,推荐1. 6或1. 7的JDK -运行Kettle直接双击里面的批处理文件spoon, bat就行了,如图1.1所示:Dau docs zppencr.sh knpoitbdtREADME. OSX.brtREADME. UNIX_AS4 GO.txtyarnshHiIIHpluginliHI samples simple-JndII15UiCane batorte.sh1READMENF

3、0BM6HEncr.bdtimpofi.shflimport-wl Kiwhe 八 ba ” xmltkiKheo.shib zip iKENStixPan twt 资源库-连接 资源库,这时候弹出一个窗口,我们点击右上角的“+”号,跟着点击下面的kettlefile repository选项,按确定,如图21所示: Select the repository type过滤M QSelect the repository type to createKettle database repository : This repository uses a central relational da

4、tabase to store ETL metadata.Kettle file repository: This is d repository stored in a file in g certain folder.图2. 1跟着在右上角选择一个目录,建议在kettle路径下新建repository文件I U丨叵夹,再选择这个文件夹作为根目录,名称和描述可以任意写,如图2.2所示:筋文件费源库设晋根目录-ilespdi-ce-5.4.0.1-130data-integrationrepository 浏览回 只i卖资源嘩? Hide hidden folders and files? F

5、名称 repositoryDescription repository!确走(Q)图2.2建完后会kettle工具会自动连接到repository资源库,每次打开kettle 也会弹出一个窗口让你先连接到资源库。在连接到资源库的情况下打开文件就是WORD版木TRANSFO.2017/04/12 1.H KJB_SJCS_JY_TESTJOB2017/04/12 1资源库所在目录了,如图2.3所示。注意你在资源库建的目录结构要跟数据交换 平台的目录结构一致,这样写好kettle脚本,保存后放的路径能跟交换平台的选徑虫源准対念1 ahi选擇对象M Q % iz9?型僅用晋发空査化的曰期fsas目录

6、结构一致了。* CJ tja-亡1敌旧仓理 社保业第去“ C审夫衣宓 DB_M H PT_T_SF_DWJ F DJ XX图2.322在目标数据库里新建表在做数据迁移的时候我们需要先在目标数据库建立与源数据库类似的表结 构,才能在这两表之间做数据迁移,以oracle数据库到gp数据库, T_SF)町FDJXX_TEST表做数据迁移为例,我们先建类似的表结构/首先先把表结构的代码拷出来:cate table T_SF_DWJFDJXX_TESTNSRNBMNUMBER(IO) not null,DWSBHVARCHAR2(18) not null,JFDWNBMNUMBER(IO) not nu

7、ll,HYFL_DMCHAR(1) not null,JFDWLX_DMCHAR(3) not nu11,SBJC_DMCHARC2) not null,SBGLJG.DMVARCHAR2(11) not null,SWGLJG.DMVARCHAR2(11) not null,SBDJ.ZTCHARC2) not null,DJSLRY_DMVARCHAR2(11),DJSL_RQDATE,LRRY.DMVARCHAR2(11),XGRY.DMVARCHAR2(11),DJ_RQDATE,WORD版木DJJG.DMVARCHAR2(11),LR_SJTIMESTAMPC6),XG.SJTIME

8、STAMPC6),ZDFY_BJCHAR(l),XMMCVARCHAR2(100),KNQYBZ.DMCHAR(l),ZDYCKJN.BJCHAR(l),SJJHPT_SJTIMESTAMPC6),SJJHPT_DZNUMBER(14)跟着在这个表结构的基础上,在目标数据库创建新表。需要注意的是,gp 数据库的数据类型有些跟oracle的一样,有些不同。相同的就不用改了,不同 的就改下。以上面的数据类型为例,相同的有char date、timestamp,不同的 是 varchar2 和 number,因此,varchar2(n)要改成 varchar(n) number(n)要改 成inte

9、ger (注意不带数字长度n)。建完之后,我们就可以在这不同数据库的 两表之间进行数据迁移或数据定时传输。2. 3.源数据库和目标数据库的jndi设置Jndi是kettle连接数据库的配置文件,相当于oracle的tns Jndi设置的 目录是在kettle目录下的simple-jndi文件夹里,打开后编辑jdbc. properties 来设置jndi 下面附上公司揭阳涉税项目oracle到gp数据库的jndi设置,分 别是源端or*acle数据库和目标端gp数据库。配置信息的斜杠左边是jndi名, 这里jndi的命名规则是数据库名_用户名,注意本地的jndi名要跟交换平台的 jndi名一致

10、。配置信息的斜杠右边分别是数据库类型、驱动、数据库地址、用户名和密码。 注意,相同数据库配置写法相同,不同数据库的配置写法略有不同,像下面的 oracle和gp数据库的driver和url地址写法就不一样WORD版木 orac 1 e.dbmhpt/typc= javax sql DataSourceorac1e.dbmhpt/drivcr=orac1e jdbc driver OraclcDriveroracledb.mhpt/ur1=jdbc:oracle:thin:172.16.11.91:1521:zrmhdborac1c_db_mhpt/user二db_mhptorac 1 c_db

11、_mhpt/password 二 DB.HHPTgppublic/type二javax sql. DataSourcegp_public/driver=org postgresq1. Drivergp_pub1ic/ur1=jdbc:postgresql:/172. 16. 11. 165:5432/postgrcsgp_public/databasc二8gppubl ic/uscr=gpadiningppubl i c/password=gpadiii i n2.4.写 kettle 脚本Kettle脚本有两种,ktr脚本跟kjb脚本其中ktr负责执行,具体要做什 么由ktr来负责;kjb负

12、责调度,调用一个或多个ktr。Ktr和kjb的关系类似 于像员工和领导之间,员工负责具体的事务操作,领导负责计划安排工作。新建 ktr脚本可以点击左上角的文件-新建 转换,新建kjb脚本就文件- 新建- 作业。我们这里传输数据只要用到kjb脚本,一表的数据传输要有1 个脚本。首先先新建一个ktr文件,如图2. 4所示,跟着我们按照主界面的提示拖动 主键来操作。拖动组件在核心对象的组件库里。WORD版木筋 Spoon - repository转换 1立件(E)去58视国执行工貝蚩助 E) EU C0*2!2: KJBJCS.JY-TEST (!( KTR-SJCS.JY.TEST 俄舷Q步侵 D

13、 Input匕辎入匕辎出 5?0 口丽駆0 C3脚本 口 BA Server匚I査向 口连接匕敌闵仓库、口强 口统计 口 Big Data D Agile匕加密0 口 Palo11 ?霓 *0 民胃 100% Drag & drop from the design panel to begin.图2.4跟着我们需要4个组件,分别是获取变量、表输入、字符串操作、插入/更M,先从组件库里找到这些组件然后拖动到右边面板上,査找组件可以用组件名称来在组建的搜索框里搜索o拖动后如图2. 5所示。获取变量画 KI表输入字符串操作插入/更新图2.5然后给他们组件之间建立连接,用拉箭头来连接即可,如图2.6所

14、示:WORD版木丟輸入图2.6组件之间连接完之后,跟着双击组件一个个编辑o第一步是获取变量,在获 取变量前首先要设置入参用来获取变量,设置变量先双击主对象树的kti名(转 换1是未保存文件到本地的默认名),跟着设置命名参数。如图2.7跟2.8所示。其中start_tiniestamp和end_timestamp这两个是数据交换平台服务器上默认的用于增量抽取数据的两个入参,分别表示数据开始时间跟数据结束时间。这里填上了默认值方便测试-主对彖树核心对彖浏览器 口 Steps (步悪)1 口 Hops (节点连接 亡数毎库分区scherr 口子服务需亡Kettle集群scherr 口 Hadoop

15、clustersWORD版木图2. 7图2. 8设置入参后再编辑获取变量的组件,这里名称跟入参一样,kettle变量名的写法是$Variables,类型我们选择string 因为服务器上交换平台传进来的s tar t_times tamp和end-times tamp参数也是string类型的我们这里跟它一致。也如图2. 9所示:步骡名称字段:#名称格式长康精1start.timest.$sta rt.ti mestampStri ng2endtimesta.$(end_timestamp)String图2.9第二步是表输入,首先要先连接数据库,之前我们在本地文件上配置了 jndi, 这里jn

16、di就用得上。新建或编辑数据库连接,选择好连接的数据库,还有jndi 连接方式,再填上jndi名称和连接名称,设置完了就点击左下角的测试来测试 本地能不能连上数据库。连上了我们才做其他的步骤0WORD版木oracle_db_mhptOracleJNDISF:Oracle RDBPalo MOLAP Server PostgreSQL RedshiftRemedy Action Request Syst SAP ERP System SQLite Sybase SybaselQ TeradataUniVerse database谨接方式:oracle_db_mhpt数堀玉空间索引表空同Nativ

17、e (JDBC) ODBCOCIJNDI取消图 2. 10连通好后*写好sql语句。这里sql语句用到变量,kettle变量的写法是 $)variables,而使用变量要在左右两端再加上单引号,变成$varieibles。 注意数据库后台的日期类型是date,而变量是字符串类型,因此需要做个变量 的类型转换。因为有使用变量,所以需要勾上“替换sql语句里的变量”单选框。 设置好后可以预览下数据看下。WORD版木o 1 QTJ 曲I| Wizard珈入歩骥名称表轲入敖定库连接oracle_db_mhptSQLSELECT T *FROM db_nhpt .T-SELDUJFDJXX 丁WERE

18、1 = 1- to-dfttet * Sstaxt_t inwtJip *, YYYY-MX-DD HEUfl.MliSSJAND t ejjhpt.ej p.Poddng Pad charPod Leng,. IrutC叩EscapeDigitsRemove Special cha.1DWS8Hbothnonenone否tonenonenone2HYFl_DMbothnonenoneGNonenonenone3JFDWLX.DMbothnonenoneSh*orx?nonenone4SBIC.DMbothnonenone否Nonenonenone5SBGUG.DMbothnonenone否Z

19、onenonenone6SW6U6.DMbothnonenonesNonenonenone7SBDJ_Zrbothnonenone否Nonenonenone8D兀 LRY.OMbothnonenoneZonenonenone9LRRY.DMbothnonenone若Nonenonenone10XGRY.DMbothnonenonesNonenonenone11DJJG.DMbothnonenonesNonenonenone12ZDFY.BJbothnonenone否Nonenonenone13XMMCbothnonenone否Nonenonenone14KNQYBZ.D.bothnonenon

20、esNonenonenone15ZDYCKJN_B;bothnonenonesNonenonenoneThe fields to process*Step name (0)图 2.12第四步是插入数据到目标端的新表 首先是要先连通目标端的数据库。设WORD版木置好后再点击“测试”连通到目标端的数据库。图 2. 13跟着是设置目标表(目标模式可以不填),点击浏览选择模式/用户下的数 据库表。然后设置每插入多少条数据提交的提交记录数量,用来査询的关键字选 择主键的字段,而更新字段是全部,点击获取字段即可。他这里操作的原理是: 如果目标表有符合该查询的条件的记录时,那么更新此条数据;不符合时,那么

21、将源表的此条数据插入到目标表。WORD版木不执行任何更新:T琳言询的关健字:# 表字段娅符施的字段哼的宇段2获取字段1NSRNBM=NSRNBM插A/更新吏新字段:A表字段舲段更新厶1NSRNBMNSRNBMV2DWSBHDWSBHY3JFDWNBMJFDWNBMY4HYFL.DMHYFL.DMy5JFDWLX_DMJFDWLX.DMY6SBJC.DMSBJC.DMY7SBGUG.DMSBGUG.DMY8SWGUG.DMSWGUG.DMYJ9_RD7T5RDlL7IV Help| 确定(O) | 取消(C) 5QL获取和吏新芋段图 2. 14这四个步骤编辑完成后最后就是执行这四个步骤了,点击左

22、上角的运行图 标,设置时间参数或者时间参数按照默认值,运行后,如果全部组件都有绿色勾 勾的标志的话说明全部运行成功,如下图所示。如果某一个步骤失败的话就是红 色勾勾的标志,这时候就要看日志或者步骤度量来分析了。从下面的步骤度量看 表输入有1条数据输入进来,插入/更新步骤有1条数据写进去了。WORD版木字符串操作表输入拖入虑执行结果执行厉史旧日志蕙步孩,克虽L:住微冒Metrics Preview data9步瞬称藝制的记或行倭写蔚入当出史豹走绝借渎瑕活时间甌際记龙/Pri/in/o.1011000000.0s67200110000 Bxfic0.1$19301100000已50.0s204摇入

23、/史新01111000 65&U0.1s8WORD版木图 2. 153.在数据交换平台设置定时任务以公司这边的数据交换平台为例(172. 16.1L 17:9001/WebContent admin/admin),如果交换平台的jndi设置没有设置的话,那么要首先设置这样 跑kettle脚本的话才能连到数据库,注意本地kettle的jndi名要跟交换平台的jndi名一致,需要统一命名。II.%craINDIfldl XQJIDI数老交菱建松妃乂传&欢音& i 庭平台鏡上W洵爾豹电片沁JNI谄主札妣萃号用户名匚ceAtifXTO150. U 36.611S21crcldxntwjwitbi公共,

24、JNDIW1 CftICLEonde_ti_ihpt112.1& 31.931021C_KFT支传九超at代马鼓沪-| FfSTGfeatsxmttlcI 172.16 31.1(5S2peetrrwcwchlnme* tn恂位分占煙沪1 :CfUCLSJFTlM.Ti 26.621021rclaJjh,业务号黄代马仝ACftiOJHOTOJTl.?a 16.611S21crcl5WTtb?.,人员怡卩纨的胎孟储总户 tt恂恂位建沪IS1&共5予ttfi行图3.1跟着将脚本放上服务器,可以在页面上上传文件到服务器oWORD版木g ) 心教拐交侯着理救据交换流程管理调穴干白状况言询-公共解克誌过洼诋覺 JNDIE*占系统管理-題能代码维护.机构准护岗位分类堆护C业务分类代码维护亍鱼用參数维护人员准护岗位奉护机枸职能时维护d机枸岗位维护d机枸岗色职能村绝护于应弔地址维护 维功能树维护4机枸岗位人员维护用色准护ar 趺迎页俪交管 X擁目录输絵够出 jievanA 血 ajcs白色歇据仓库目社保円业韦农HG3 事雀Mq悅务砒目录概目录JNDI瓯蓋X宗肘处行耸状态走时器名称白lestLj? tesrl 11至命名目录上传济程文件20图3.2上传好后,需要先跑

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论