您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > Kettle安装部署及实例演示
0Kettle安装部署及实例演示本文档包括三部分内容:1、Java的安装部署2、Kettle的安装部署3、Kettle的开发实例演示Date:2013/12/14Author:LiPin1一、Java安装部署1.1安装Java在网站下载适合的jre//**有两种可选版本:rpm安装包,.gz自解压安装包这里选择rpm格式安装,将安装包(jre-7u45-linux-i586.rpm)上传到root用户目录/home/java下。//**在root下安装可为全用户提供java环境支持,也可根据实际情况为某一用户安装)终端输入:rpm-ivhjre-7u45-linux-i586.rpm开始安装此时java已成功安装!//**rpm命令安装的java默认安装路径是/usr/java/jre1.7.0_451.2配置java环境修改文件/etc/profile:2进入profile,敲Ctrl+F到文件末尾,写入以下内容:JAVA_HOME=/usr/java/jre1.7.0_45PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportJAVA_HOMEexportPATHexportCLASSPATH▲其中JAVA_HOME是java的安装路径。//**此处要注意环境变量的java路径是安装路径,不是java的执行路径;Java路径查询:whereisjavaJava执行路径查询:whichjava保存退出!在终端键入java,如果显示帮助信息,则表示java环境配置完成:34二、Kettle安装部署2.1安装Kettle在网站下载所需的kettle版本进root用户将安装包(pdi-ce-5.0.1-stable.zip)上传到/opt/kettle目录下因为要将kettle安装在用户telepow下(也可根据需求为所需用户安装),则需改变kettle文件的属主及属组:chown-Rtelepow:telepowkettle切换到telepow用户下,开始安装,因为kettle安装包格式为.zip,所以运行:unzippdi-ce-5.0.1-stable.zip安装到当前目录。安装完成后,可以看到生成一个新的文件夹data-integration,则/opt/kettle/data-integration既是kettle的安装和执行目录5进入该目录下,为所有.sh文件赋予执行权限:chmod+x*.sh然后在终端键入./kitchen.sh,如果出现帮助信息,说明kettle安装部署完成6三、Kettle实例演示Java和kettle安装部署完成之后,就可以使用kettle工具了!下面将以实现定时从一台PC上的数据库中抽取数据到另一台PC数据库为例,讲解kettle的使用。3.1运行kettle在kettle安装目录下运行:./spoon.sh即可弹出kettle操作界面。//**此处注意,如果无法弹出kettle的运行界面,提示缺少图像插件的话,需要为linux的系统安装图形运行工具;将图形工具安装包(libXp-1.0.0-8.1.el5.i386.rpm)上传到root下临时目录,安装:rpm–ivhlibXp-1.0.0-8.1.el5.i386.rpm7接着就是登陆界面Kettle为用户提供两种存储用户编写的kettle脚本的方式:一是kettle工具自身的资源库(相当于一个小型专属数据库);二是不使用资源库,将脚本信息直接存储在自建目录中;此处我们不使用资源库登陆,点击‘Cancel’弹出的帮助信息点击‘Close’8紧接着就可以看到kettle的使用界面93.2任务信息说明此演示工作涉及到的信息是:PC01IP:192.168.193.130端口号:8000数据库:sybase用户数据库:dynamicdb数据库用户:telepow数据库用户密码:123456任务表:SWITCHPOWDEVPC02IP:134.81.5.86端口号:8000数据库:sybase用户数据库:dynamicdb数据库用户:telepow数据库用户密码:uo23hoS982_Ow_db任务表:V_SWITCHPOWDEV需要做的就是将PC02的视图表V_SWITCHPOWDEV中数据定时抽取到PC01的表SWITCHPOWDEV之中103.3创建转换(Transformation)3.3.1新建Transformation打开‘File’—‘New’---‘Transformation’创建一个转换Transformation013.3.2创建数据库连接在转换视图窗口双击‘DatabaseConnections’为此转换建立一个数据库连接1112ConnectionName:建立的数据库连接名称--Get_86ConnectionType:连接的数据库类型—SybaseAccess:连接方式—JDBCHostName:连接主机的IP地址—134.81.5.86DatabaseName:连接的用户数据库—dynamicdbPortNumber:数据库端口号—8000UserNmae:数据库用户名—telepowPassword:数据库用户密码--uo23hoS982_Ow_db配置完成之后点击左下角‘Test’,测试数据库连接状态出现截图信息,说明配置正确,数据库连接正常!点解OK保存退出!133.3.3创建转换关系点击转换窗口的‘Design’,将‘Input’中的‘Tableinput’表输入图标拖入右侧窗口,然后再将‘Output’中的‘Insert/update’插入/更新图标拖入右侧窗口按住‘Shift’键鼠标左击右侧窗口中的‘TableInput’图标,点住不放托至右侧‘Insert/Update’图标上,发现有一条带箭头的连接线将两个图标连接起来。14这样两个图标之间就建立了数据抽取与数据存储的关系3.3.4配置表输入信息双击‘TableInput’图标,弹出表输入配置信息,为抽取PC02中的数据配置相关信息。15Stepname:步骤名称--TableInput01Connection:所属数据库连接—Get_86,即刚刚建立的连接PC02的数据库连接SQL:需要对PC02中任务表做的操作—SELECT*FROMdynamicdb..V_SWITCHPOWDEV点击OK保存退出!163.3.5配置表插入/更新信息同样双击‘Insert/Update’图标,弹出配置界面,为向PC01中插入数据配置相关信息Stepname:步骤名称--insert/Update01Connection:所属数据库连接—Into_130,此处注意,因为要向PC01中插入数据,所以点击‘Connection’右侧的‘New’新建按钮,创建新的数据库连接,此连接指向PC0117Targettable:目标表—SWITCHPOWDEV,即是要把数据插入PC01中的这张表Conmmitsize:数据量限制—设置的数值最好大于每次需插入表中总的记录数TheKey(s)tolookupthevalue(s):查询关键字—抽取PC02中V_SWITCHPOWDEV的数据时筛选所需关键字,点击右侧‘GetFiles’获取所有字段,将多余字段删除Updatefiles:更新的字段—对PC01中SWITCHPOWDEV表需要更新的字段,点击右侧‘Getupdatefiles’获取所有字段点击OK保存退出!183.3.6运行转换转换信息配置完成之后,先对编写好的转换进行调试,验证有无Bug,点击菜单栏图标,弹出调试结果可以看出没有错误,最后运行此连接,实现数据的抽取,点击菜单栏图标弹出窗口,点击‘Lanuch’----‘Yes’进行保存19Name:保存的转换名称—Get_86to130Browserforotherfolders:存储路径—/opt/kettle/ktllog,将转换保存在自己建立的路径中,方便后续查找调用点击OK开始运行,下方会打印出动态日志,完成之后可以看到日志中的‘Finished’字样20至此一个转换已经建立完毕!3.4创建定时任务Job转换完成之后,开始建立定时任务,已实现定时抽取数据的需求,定时任务有两种途径可以实现:一是利用kettle自身的定时工具‘Start’;二是利用linux中的crontab功能;213.4.1kettle自带的‘Star’定时功能3.4.1.1新建Job打开‘File’—‘New’—‘Job’,新建一个任务Job3.4.1.2创建数据库连接为任务Job创建一个数据库连接即指向PC01的连接,双击Job视图窗口的‘DatabaseConnection’弹出配置界面22配置好之后,保存退出!3.4.1.3创建任务关系打开任务设计窗口‘General’将‘START’和’Transformation’图标拖入右侧窗口,再将‘Scripting’中‘SQL’拖入右侧窗口,并将图标连接起来。233.4.1.4配置START信息双击图标‘START’,弹出配置窗口Repeat:重复—将此项勾选,表示按下面配置的周期重复Type:周期类型—Weekly,按周重复Timeofday:时分设置—当天的17:10Dayofweek:星期选择—Saturday,定在每周六执行243.4.1.5编写SQL语句因为上述编写过的转换只能实现将PC02的数据抽取到PC01中(即将PC01与PC02中共有的数据更新和PC01中没有而PC02中有的数据插入PC01中),而不能实现保持PC01与PC02数据完全相同(即不能将PC02中已经没有的数据从PC01中删除),所以在执行转换前要编写个SQL语句,在插入PC02数据之前将PC01中的数据先清空,双击‘SQL’图标,弹出配置界面Jobentryname:SQL脚本的名称—SQLConnection:所属数据库连接—locale,此处是要对PC01中的SWITCHPOWDEV表进行操作,所以选择locale连接SQL:需执行的SQL语句--DELETEFROMSWITCHPOWDEV保存退出!253.4.1.6导入转换双击‘Transformation’图标,将已经编写好的转换导入进来Nameofjobentry:Job步骤名称—TransformationTransformationfilename:已编写转换的路径--/opt/kettle/Get_86to130.ktr,通过点击右侧的图标,选择转换保存退出!263.4.1.7运行任务点击菜单栏执行Job,弹出窗口,点击‘Lanuch’Name:保存Job的名称—Job01Browseforotherfolders:保存Job的路径Job开始运行,下方会打印动态日志,开始时会停在‘start’状态,因为此时还未到设置的周期时间等时间来到周六的17:10,任务继续往下走27从日志可以看出本周的任务执行完毕,最后的‘start’状态表示进入下一个周期等待中…….至此kettle自带的定时任务设置演示完成!下面讲解通过linux的crontab实现定时的功能3.4.2Linux的crontab脚本定时因为已经将需要的kettle脚本编写完毕,现在只需配置crontab所需信息,直接调用即可3.4.2.1创建sh脚本以telepow用户进入目录/opt/kettle/ktlsh,编写Get_86.sh脚本,写入以下内容:#!/bin/shROOT_TOPDIR=/opt/kettleexportROOT_TOPDIRdate$ROOT_TOPDIR/ktllog/log01echo-----------------------------------------------------
本文标题:Kettle安装部署及实例演示
链接地址:https://www.777doc.com/doc-5061638 .html