Kettle配置使用文档说明一、安装配置Kettle系统环境1.安装前准备JAVA安装文件下载地址:下安装JDK1.6,并配置环境变量##下载Jdk1.6.exe直接执行安装程序2.Linux下配置JDK1.6,并配置环境变量###下载JDK1.6到目录/usr/java/###更改JDK可执行权限chmod+xjdk1.6.xx.bin###执行安装./jdk1.6.xx.bin###配置JAVA环境变量vi/etc/profile#java1.6setupJAVA_HOME=/usr/java/jdk1.6.0_38PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/libexportJAVA_HOMEPATHCLASSPATH###应用环境变量source/etc/profile###查看JAVA版本信息java-version2.Kettle下载解压到指定目录,下载kettle标准版工具包:解压到目录:D:\data-integration(目录可根据实际情况自定义)二、Kettle基本操作过程数据库操作说明:生产数据库:10.176.0.221DB:e2tms4用户名:e2tms4密码:1234567本地文本文件:D:\Db_file\outfile.txtKettle数据仓库:10.176.0.221DB:kettledb用户名:kettle密码:12345671.启动Kettlet应用程序,打开D:\data-integration\下面的Kettle.exe或Spoon.bat,出现Kettle的欢迎界面:之后出现用户登录界面,先不加载配置,点击”没有资源库”,打开程序主界面,2.kettle界面显示3.Kettle配置说明新建transformation文件,双击左边转换将创建一个新的transformation(也可以通过菜单里面的文件-新建-转换方式新建文件),点击另存为,保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation,文件保存后后缀名为ktr。4.创建数据库连接池.在transformation页面下,点击左边的”主对象树”,右键”DB连接”选择”新建”,配置数据库连接,配置写成后点击”Test”查看数据库连接情况,如下提示表示正常,点击OK确认保存配置.使用以上方式,创建以下数据连接池.生产数据库master-data1:10.176.0.221DB:data1用户名:data1密码:1234567生产数据库master-data2:10.176.0.221DB:data2用户名:data2密码:1234567Kettle数据仓库kettledb:10.176.0.221DB:kettledb用户名:kettle密码:1234567配置完成后显示以下列表:5.导入测试数据,(现实数据库中不需要以下操作)生产数据库1:10.176.0.221DB:data1用户名:data1密码:1234567USEdata1;CREATETABLEuserInfo(idint(11)NOTNULL,namevarchar(20)DEFAULTNULL,ageint(11)NOTNULL,addressvarchar(20)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;INSERTINTOuserInfo(id,NAME,age,address)VALUES(1,'aaa',22,'成都市二环路');INSERTINTOuserInfo(id,NAME,age,address)VALUES(2,'东方红',25,'中国北京');INSERTINTOuserInfo(id,NAME,age,address)VALUES(3,'123',19,'广州白云区');生产数据库2:10.176.0.221DB:data2用户名:data2密码:1234567Usedata2;CREATETABLE`login`(`id`int(11)NOTNULL,`realname`varchar(20)DEFAULTNULL,`username`varchar(20)DEFAULTNULL,`password`varchar(20)NOTNULL,`active`int(11)DEFAULT'0',PRIMARYKEY(`id`),UNIQUEKEY`realname`(`realname`),UNIQUEKEY`username`(`username`))ENGINE=InnoDBDEFAULTCHARSET=utf8;insertintologinvalues(1,'aaa','admin','admin',0);insertintologinvalues(2,'东方红','test','test',1);insertintologinvalues(3,'123','xxx123','123456',1);本地文本文件:D:\Db_file\dbfile.txt文件内容:sid;sname;teacher34;123;徐老师78;aaa;李老师152;东方红;MrWu三、使用Kettle抽取、转换、装载数据1.表输入:在EtltestTrans页面下,点击左侧的【核心对象】,点击【输入】,选中【表输入】,拖动到主窗口释放鼠标。双击工作区中【表输入】图标,数据库连接选择刚刚创建好的连接名为Oracle的数据库连接,在主窗口写入对应的查询语句:SELECTID,NAME,AGE,ADDRESSFROM`userInfo`ORDERBYNAME同上所述,将master-data2生产数据库2也加入到表输入界面中.SELECTId,realname,username,password,activeFROMloginORDERBYrealname2.表连接查询在EtltestTrans页面下,点击左侧的【核心对象】,点击【连接】,选中【MergeJoin】,拖动到主窗口释放鼠标:点击表输入,按住shift键,再拖动鼠标到MergeJoin,这时就实现了在两个组建之间的连线。如图:3.第一次连接查询双击工作区中的MergeJoin,在出现的窗口里:步骤名称命名为:表连接查询第一个步骤选择:master-data1表输入第二个步骤选择:master-data1表输入连接类型选择:FULLOUTER在连接字段里,第一个步骤写:NAME,第二个步骤写:realname(或者自动获得连接字段后将多余字段删除)4.文本文件输入数据在EtltestTrans页面下,点击左侧的【核心对象】,点击【输入】,选中【文本文件输入】,拖动到主窗口释放鼠标。双击这个图标,进入编辑窗口:在文件或目录中选择输入的文件,点击增加.打开字段选项,点击获取字段,显示出文本文件中所有字段信息,删除多余空白字段,点击预览记录,显示文本文件中取数据条数信息后显示出文本文件数据内容.5.第二次连接查询再次拖入一个表连接查询图标,将上次的查询结果与文本文件相连,再进行一次表连接查询。6.插入/更新在EtltestTrans页面下,点击左侧的【核心对象】,点击【输出】,选中【插入/更新】,拖动到主窗口释放鼠标。将它与第三次表连接查询进行连线。7.将数据导入指定kettledb数据仓库双击”插入/更新”图标,进入编辑窗口。数据库连接选择数据仓库的kettledb数据库,目标表选择对应的datatable表,在查询关键字里,表字段写name(表示仓库表里的字段),流里的字段1里写入NAME(即上一个步骤输入的内容里的NAME)。比较符用”=”号。第一次向数据仓库导入数据时,点击SQL选项,查看创建表语句结构,点击Execute执行创建..8.执行工作流,进行数据导出导入.点击运行,测试创建的transformation是否成功。点击这个按钮,就会执行ETL过程,这时我们可以查看数据仓库的表,如果有数据,并符合我们的要求,那么说明我们的transformation成功了。四、创建job工作流过程,Job就是把一个或多个transformation按照一定的顺序组合起来,形成一个流程。1.创建job文件,通过菜单里的“文件-新建-作业”就可以创建一个job文件,点击另存为D:\etltest\jobtest.kjb。2.创建工作作业流程拖入图标并连线,在EtlscriptJob页面,点击【核心对象】,点击【通用】,选中【START】拖动到主窗口释放鼠标,再选中一个【Transformation】,拖动到主窗口释放鼠标,建立【START】与【Transformation】之间的连接。3.编辑”开始”流程双击”START”图标,就进入编辑窗口,可根据实际需求更改定时时间操作。4.编辑transformation流程双击”transformation”图标,就进入编辑窗口。输入job名称:如Etl-testpro,点击转换文件名后面的按钮,浏览我们我们要转换的文件,并选中。其他的选项可以根据实际需要再进行配置。点击确定按钮,退出编辑窗口。图中各选项,根据实际情况进行选择使用.5.运行JOB工作流点击按钮,就可以运行这个job,运行情况会在界面下显示,job跟上面的转换其实是完成了同样的工作,job可以把多个transformation放在一起组成一个流程,什么时候用job或transformation,是根据需要来定的,比如只有一个transformation时,就可以直接用transformation,但如果这个转换需要定时,那么就必须用job了。多个transformation需要组成一个流程时也必须用job。备注:命令行执行命令行运行ktr和kjb在上面的过程中,我们都是在IDE工具中,直接点击按钮进行运行文件的,但在实际中,我们需要脱离IDE,进行单独的运行,这时就必须用到命令行来运行文件了。1.cmd方式运行1.ktr的运行:运行transformation文件是通过Pan.bat来运行的。打开cmd命令行窗口,转到Pan.bat所在的目录,如d:\data-integration,然后执行文件的命令为:pan/fileD:\etltest\Etl-testpro.ktr2.kjb的运行:运行job文件是通过kitchen.bat来运行的。打开cmd命令行窗口,转到Pan.bat所在的目录,如d:\data-integration,然后执行文件的命令为:kitchen/fileD:\etltest\Testjobs.kjb2.bat文件运行如果觉得通过打开命令行输入麻烦,我们可以把它写在一个批处理文件中。如:d:cdD:\data-integrationpan/fileD:\etltest\Etl-testpro.ktr把这些内容保存在pan.bat里,通过双击panKtr.bat就可以执行ktr文件了。同样地,我们把下面的内容:d:cdD:\data-integrationkitchen/fileD:\etltest\Testjobs.kjb保存在Kjb.bat里,双击它,也可以执行kjb文件。