Kettle开发使用手册

上传人:do****y1 文档编号:183726511 上传时间:2023-01-31 格式:DOCX 页数:17 大小:327.20KB
收藏 版权申诉 举报 下载
Kettle开发使用手册_第1页
第1页 / 共17页
Kettle开发使用手册_第2页
第2页 / 共17页
Kettle开发使用手册_第3页
第3页 / 共17页
资源描述:

《Kettle开发使用手册》由会员分享,可在线阅读,更多相关《Kettle开发使用手册(17页珍藏版)》请在装配图网上搜索。

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

2、ttle的安装Kettle工具是不需要安装的,直接网上下载解压就可以运行了。不过它依赖于Java,需要本地有JDK环境,如果是安装4.2或5.4版本,JDK需要1.5以上的 版本,推荐1.6或1.7的JDK。iSpoan-b运行Kettle直接双击里面的批处理文件spoon.bat就行了,如图1.1所示:图1.1rtapnteStllUICtrimporc.ihimp&rc-AilnaiSarnple s.diIII pluginskJichefi.Blise-t-pemtiah o-env.sli-spam.cd mmwdipEh叩口口 npng笔IREADME-L INUXtrtSpaan

3、De-b ug.hatREADM E_ OSX.bctkipcnGb 前READM E_UN虬心OO.brtnaiWEple* jbdtKhtlwnt加 tse-t-pcntdh o-enwJbatIR浏中旧*1LKEH5E1XCdne bst%叩口 口 nC 口 n bdk.tnatEncr.bdtI README NFOBRJGH1 T.CXt2. Kettle脚本开发2.1.建立资源库(repository仓库)Repository仓库是用来存储所有kettle文件的文件系统,由于数据交换平台服 务器管理kettle文件也是用Repository仓库,因此我们这边本地的kettle开 发

4、环境也是要用到该资源库。建立资源库的方式是工具- 资源库- 连接资 源库,这时候弹出一个窗口,我们点击右上角的“ + ”号,跟着点击下面的kettle file repository选项,按确定,如图2.1所示:图2.1跟着在右上角选择一个目录,建议在kettle路径下新建repository文件 夹,再选择这个文件夹作为根目录,名称和描述可以任意写,如图2.2所示:图2.2建完后会kettle工具会自动连接到repository资源库,每次打开kettle 也会弹出一个窗口让你先连接到资源库。在连接到资源库的情况下打开文件就是 资源库所在目录了,如图2.3所示。注意你在资源库建的目录结构要跟

5、数据交换 平台的目录结构一致,这样写好kettle脚本,保存后放的路径能跟交换平台的 目录结构一致了。景笔选径造源佳对枣I 口M Q % |z关型使用身发王/化的曰朗荷述 Ljr-D牡保业矣耒DB_M H PT_T_SF_DWJ FDJXXTIRANSFO.2017/04/12口KJB_SJCS_JYTESTJOB2Q17/04/12图2.32.2.在目标数据库里新建表在做数据迁移的时候我们需要先在目标数据库建立与源数据库类似的表结构,才 能在这两张表之间做数据迁移,以oracle数据库到gp数据库, T_SF_D町FDJXX_TEST表做数据迁移为例,我们先建类似的表结构,首先先把表 结构的

6、代码拷出来: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) not null,SBDJ_ZT CHAR(2) not null,DJSLRY_DM VAR

7、CHAR2(11),DJSL_RQDATE,LRRY_DM VARCHAR2(11),XGRY_DM VARCHAR2(11),DJ_RQ DATE,DJJG_DM VARCHAR2(11),LR_SJTIMESTAMP(6),XG_SJTIMESTAMP(6),ZDFY_BJCHAR(1),XMMC VARCHAR2(100),KNQYBZ_DM CHAR(1),ZDYCKJN_BJ CHAR(1),SJJHPT_SJ TIMESTAMP(6),SJJHPT_DZ NUMBER(14) );跟着在这个表结构的基础上,在目标数据库创建新表。需要注意的是,gp数据 库的数据类型有些跟oracle

8、的一样,有些不同。相同的就不用改了,不同的就 改下。以上面的数据类型为例,相同的有char、date、timestamp,不同的是 varchar2 和 number,因此,varchar2(n)要改成 varchar(n),number(n)要改成 integer (注意不带数字长度n)。建完之后,我们就可以在这不同数据库的两 张表之间进行数据迁移或数据定时传输。2.3. 源数据库和目标数据库的jndi设置Jndi是kettle连接数据库的配置文件,相当于oracle的tns。Jndi设置的 目录是在kettle目录下的simple-jndi文件夹里,打开后编辑jdbc.properties

9、 来设置jndi,下面附上公司揭阳涉税项目oracle到gp数据库的jndi设置,分 别是源端oracle数据库和目标端gp数据库。配置信息的斜杠左边是jndi名, 这里jndi的命名规则是数据库名用户名,注意本地的jndi名要跟交换平台的 jndi名一致。配置信息的斜杠右边分别是数据库类型、驱动、数据库地址、用户名和密码。 注意,相同数据库配置写法相同,不同数据库的配置写法略有不同,像下面的 oracle和gp数据库的driver和url地址写法就不一样。oracle_db_mhpt/type=javax.sql.DataSourceoracle_db_mhpt/driver=oracle.

10、jdbc.driver.OracleDriveroracle_db_mhpt/url=jdbc:oracle:thin:172.16.11.91:1521:zrmhdb oracle_db_mhpt/user=db_mhptoracle_db_mhpt/password=DB_MHPTgp_public/type=javax.sql.DataSourcegp_public/driver=org.postgresql.Drivergp_public/url=jdbc:postgresql:/172.16.11.165:5432/postgresgp_public/database=8gp_pub

11、lic/user=gpadmingp_public/password=gpadmin2.4. 写 kettle 脚本Kettle脚本有两种,ktr脚本跟kjb脚本,其中ktr负责执行,具体要做什么 由ktr来负责;kjb负责调度,调用一个或多个ktr。Ktr和kjb的关系类似于 像员工和领导之间,员工负责具体的事务操作,领导负责计划安排工作。新建 ktr脚本可以点击左上角的文件- 新建- 转换,新建kjb脚本就文件- 新建- 作业。我们这里传输数据只要用到kjb脚本,一张表的数据传输要有 1个脚本。首先先新建一个ktr文件,如图2.4所示,跟着我们按照主界面的提示拖动 主键来操作。拖动组件在核

12、心对象的组件库里。函 Spoon -repository转揆 1文件复楫视图执行工具量助冏主袒翔核心对重AD InputD输入D摭出转懊应用应D遍本口 BA Server口查间口连接II 牵券I?踢8回虽昌寄 KJR SJCS.JY TETK KTR_SJCS_J_TEST倡E 转换 1 沃100%Drag & drop from the design panel to begin.P Big DataD AgileD加倒 PId图2.4跟着我们需要4个组件,分别是获取变量、表输入、字符串操作、插入/更 新,先从组件库里找到这些组件然后拖动到右边面板上,查找组件可以用组件名称来在组建的搜索框里

13、搜索。拖动后如图2.5所示。获取变量 S B表输入字符串操作插入r更新图2.5然后给他们组件之间建立连接,用拉箭头来连接即可,如图2.6所示:表辘字待宰掷作组件之间连接完之后,跟着双击组件一个个编辑。第一步是获取变量,在获 取变量前首先要设置入参用来获取变量,设置变量先双击主对象树的ktr名(转 换1是未保存文件到本地的默认名),跟着设置命名参数。如图2.7跟2.8所示。 其中start_timestamp和end_timestamp这两个是数据交换平台服务器上默认的 用于增量才由取数据的两个入参,分别表示数据开始时间跟数据结束时间。这里填 上了默认值方便测试。B主对象阔核心对绿刖览器A St

14、eps (步骤)P Hops (节点连接口数唇库分区wherr子服务器En Kettle集fHch印口 Hadoop cluster图2.7 图2.8设置入参后再编辑获取变量的组件,这里名称跟入参一样,kettle变量名 的写法是$Variables,类型我们选择string,因为服务器上交换平台传进来 的start_timestamp和end_timestamp参数也是string类型的,我们这里跟它 一致。也如图2.9所示:步骤名称荻取变星*名称建搭式1 start_timest.2 end_tirnesta.$(stait_timesta mp$end_ zimestampStringS

15、tring字段:图2.9第二步是表输入,首先要先连接数据库,之前我们在本地文件上配置了 jndi, 这里jndi就用得上。新建或编辑数据库连接,选择好连接的数据库,还有jndi 连接方式,再填上jndi名称和连接名称,设置完了就点击左下角的测试来测试 本地能不能连上数据库。连上了我们才做其他的步骤。一股池窠群座援客祢:洼京类型:Oracleardtlt_db_mhptOracle RDB Palo MOLA.P ServerPostg reSQL RedshiftRemedy Action Request S/st SAP ERPUniverse database 连滨方式:Native CJ

16、DEC)图 2.10连通好后,写好sql语句。这里sql语句用到变量,kettle变量的写法是 $variables,而使用变量要在左右两端再加上单引号,变成 $variables。 注意数据库后台的日期类型是date,而变量是字符串类型,因此需要做个变量 的类型转换。因为有使用变量,所以需要勾上“替换sql语句里的变量”单选框。 设置好后可以预览下数据看下。岫天龄为骤吕称表葡人散洞5 隹接 0racle_ to_date S5laTt_tiriE5ti5Jii.p- . tm-M-DD BEUQ . HI:55)AMD t sjjhpt_SD 尸 t-cj-dete( $(end_tiMes

17、t.eiKipj - . VY-MH-EiD MH24 : MI :S5 )言挟SQL语句里的*ft亍执行A行?图 2.11第三步是字段去除左右空格,编辑“字符串操作”,点get fields获取从 上个步骤表表输入获取的字段名,然后把trim type全部选择both,意思是去 除字段左右两端的空格。如果get fields得到的字段有start_timestamp和 end_timestamp这两个,这两个多余的,就删去。如下图所示:Step niarne彦毫或靠The fields to processn stream fL. Ckit stre-am f_ TrifiiLawer/Up

18、. Padding Pzxl char P,dInrtCAp EjcapePWSBHitxxhncwe3MoreDigitsRem special cha.none no*ieSBJC.DMncmenoneMorenoni?noneSBGUG.OMnon?norjeMownonfnoneSWGUG.DMnixieMontnonenoneSBDj ZTncfiencrrt?iMIonenonenoneDJSLRY.DMnmenone-MonenonenoneLRR_DMnixieNbrwnonenoneXGRY.DMid DilSnoneNbnenonenoneDJJG_DMnoneiianen

19、onenoneZDFY.EUOS电Nbreiionenoiie?MMCncweroneMorenonenoiemidsjy 欢it。HVFL_DMJFDWLK_DMKMQBZ-D. 3PVCKJN_3JG- Helpboth newe1 oneS Morenone noneboth ncxie杳 Mownone nonemewenonenone、T -nonenonenoa让1T2.16.31.91521znh*.虹giSlHfiffd营1. & .fiBL%stcrM8KhLn皿AM*套贫户,业焉分卖收吗卷中应用V散淮衿人E攫甲便的照姓蛇性铲例杓牌区配诡村殖廿CftlOJsjesrO6Jh.

20、CLEHilllVXl15fi.T2 招.由LS21mlfa_jjhcwrjjh1W.TE, 2B.51ES21wnIiL:ri醍swrtt.拄5 惭亍Hriftg|烽图3.1跟着将脚本放上服务器,可以在页面上上传文件到服务器。翊页毗刻麟程咨M0)碘目录tfl1幡日录定时器桔林重命名目录上隹流程文件田回 lievaiiA 口 ajcii日已戒捅食岸中9杜保 Q业务表1-1IQ $日回(esiL X teFsr 1 1运行状态:日5救据痂宕珥-牧据交枚流程官四 阖度平白枕兄查询_* ”共触太尚寸漕泻置 JNDTUSft日系统曾珥 卜尊职能代阿泯护,机杓港护阂位分类堆护.业务0捷犯码曜护 卜.于应

21、用善散粮护凡M淮护顺g.机构职能对堆护$批构岗世噩护玺批杓岗位职能何拒护 1于应甲H!址维护 功能拘堆护机构岗世人昂卷护 L,用色噩护图3.2上传好后,需要先跑一回脚本跑成功才能设置定时调度,所以我们先运行一 。注意数据的起始时间(start_timestamp)默认是1970年,首次运行可以改 。数据的结束时间(end_timestamp)是当前的时间点。MHPr裁据亮Ifc噩官,.XJNPig瘴定1法屹i-IRrV.MR础.交5l:目型却:2017-04-1D 12 K 21DB_MMI- jTsF.DJFDJXXup piihIJl:必huEe dii讪中LI曰购tectI X ttl

22、.勰目录1-1 后 SJCO社保3罔瓢项r;i?fE 1131:2017-04-12 1432:27图3.3运行成功后,跟着再设定时任务,按要求设置调度频率。蒲程定时执行信息充程宅利: fji&yang/KTR SJCSJYEST.ktr.元F器舀和:|封&分云这行效.弗起恰刊阿:1970-01-Q1 C71OO:DQ岩顽1表对;江:上兑程任K闫堂豺在巨MKsSi耳片到“四友圭芸玺:主运可口回狷,定H侦企:有杖枝群“生为 1 寸再:l2C17-D.H1 1-:目至: 2011-04-11 J5:59 J7苴DV日怕昧;0 肘 |&0 科保存美国图3.4最后再通过运行日志监控调度的情况。如果失败

23、的话,可以点击“查看”看 运行详情,里面的“再次运行”可以重跑数据。运行详情最右侧的“查看”可以 看日志信息,万一数据跑失败可以通过日志来分析情况。JND1KE *适行日志V运行开拍时目.运行站束时目运行拭莅详情EDL7-a4-lE LE:06:3E2ai7-D4-2 IE.眠.:li:j迫药盼蟾行EDL7-a4-lE LZ:Q:392ai7-D4-2 IEOL U智:-RftSDL7-04-1B LL:5&:3B3J17-M-32 11EGS|门旬5卅袖色行2DL7-04-12 LL;5:3?3J1T-O4-32 11.5L.M触&. : , 112D LT-04-12 LL:场:明3J1T-O4-32 ll.4B.Ml2DL7M-12 LL.4k3B2DL7M-12 LL.36:3B2O1T-C4-J2 11.弟.施有1每5沛梃行罚LTTKTE LL:-3j:3Tam瑚is: n:3L:sa畦图3.5

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!