Kettle培训手册
ETLQExtract-Transform-Load的羃写,x据抽取、{换、装载的q程Q,对于金融IT来说Q经怼遇到大数据量的处理,转换Q迁U,所以了解ƈ掌握一Uetl工具的用,必不可少?br />
Kettle是一Ƒ֛外开源的etl工具Q纯java~写Q绿色无需安装Q数据抽取高效稳定。Kettle中有两种脚本文gQtransformation和jobQtransformation完成针对数据的基转换Qjob则完成整个工作流的控制?br />
kettle2.5.1文gҎ贝到本地路径Q例如D盘根目录?br />
双击q行kettle文g夹下的spoon.bat文gQ出现kettleƢ迎界面Q?br />
E等几秒
选择没有资源库,打开kettleȝ?br />
点击面左上角的创徏一个新的transformationQ点?img src="http://shenxiangl.com/wp-content/uploads/2008/01/012708-0349-kettle5.png" alt="" />保存到本地\径,例如保存到D:/etltest下,保存文g名ؓEtltestTransQkettle默认transformation文g保存后后~名ؓktr
点击面左上角的创徏一个新的jobQ点?img src="http://shenxiangl.com/wp-content/uploads/2008/01/012708-0349-kettle7.png" alt="" />保存到本地\径,例如保存到D:/etltest下,保存文g名ؓEtltestJobQkettle默认job文g保存后后~名ؓkjb
在transformation面下,点击左边的【Main Tree】,双击【DBq接】,q行数据库连接配|?br />
Connection name自命名连接名U?br />
Connection type选择需要连接的数据?br />
Method of access选择q接cd
Server host name写入数据库服务器的ip地址
Database name写入数据库名
Port number写入端口?br />
Username写入用户?br />
Password写入密码
例如如下配置Q?br />
点击【test】,如果出现如下提示则说明配|成?br />
点击关闭Q再点击定保存数据库连接?br />
目标Q?br />
从交易表QtradeQ,帐户表(accountQ,客户表(custQ抽C易相关的所有信息,q判断对公对U分别进行处理,输出到文本文件中?br />
操作步骤Q?br />
在EtltestTrans面下,点击左侧的【Core Objects】,点击【Input】,选中【表输入】,拖动CH口释放鼠标?br />
双击【表输入】图?br />
数据库连接选择刚刚创徏好的etltest数据库连接,在主H口写入对应的查询语?br />
Select * from trade |
点击定完成?br />
点击左侧的【Lookup】,选中【数据库查询】,拖动CH口释放鼠标?br />
按住shift键,用鼠标点中刚才创建的【表输入】,拖动到【数据库查询】上Q则建立了两个环节之间的q接?br />
双击【数据库查询】图?br />
步骤名称写入account表查询,数据库连接选择刚刚创徏好的etltest数据库连接,查询的表写入accountQ查询所需的关键字中,表字D写入acctnoQ比较操作符写入”=”Q字D?写入acctno?br />
在查询表q回的值里面写入custnoQ确定完成?br />
同上Q再创徏一个数据库查询Q命名ؓcust表查询,查询的表写入custQ查询所需的关键字写入custno=custnoQ查询表q回的值写入custnameQcustidQcusttype
点击左侧的【Transform】,选中【过滤记录】,拖动CH口释放鼠标?br />
点击左侧的【Scripting】,选中两个【Modified Java Script Value】,拖动CH口释放鼠标。分别双L开Q重命名?#8221;对公cd修改”?#8221;对私cd修改”?br />
同时Q分别创建【过滤记录】和【对公类型修攏V,【对U类型修攏V的q接?br />
双击【规律记录】打开?br />
W一?lt;field>里面选择custtypeQ点?lt;value>Q在Enter value里面写入1Q确?br />
在发送true数据l步骤里Q选择【对U类型修攏V,在发送false数据l步骤里Q选择【对公类型修攏V,定保存?br />
双击【对公类型修攏V,在里面写入javascript脚本语句
var custtype_cn=’对公客户交易’ |
在字D中写入custtype_cnQ类型选ؓstring。确定?br />
同理Q在【对U类型修攏V中Q在里面写入javascript脚本语句
var custtype_cn=’对私客户交易’ |
在字D中写入custtype_cnQ类型选ؓstring。确定?br />
点击左侧的【Transform】,选中两个【增加常量】,拖动CH口释放鼠标。分别双L开Q重命名?#8221;增加对公帔R”?#8221;增加对私帔R”?br />
分别建立【对公类型修攏V和【对U类型修攏V与【增加对公常量】和【增加对U常量】的q接
双击【增加对公常量】,名称写入valueQ类型选择stringQ值写?#8221;q是一W对公客户发生的交易”Q确定保存?br />
同理Q双凅R增加对U常量】,名称写入valueQ类型选择stringQ值写?#8221;q是一W对U客户发生的交易”Q确定保存?br />
点击左侧的【Output】,选中【文本文件输出】,拖动CH口释放鼠标?br />
建立【增加对公常量】,【增加对U常量】和【文本文件输出】的q接?br />
双击打开【文本文件输出】,文g名称写入D:\etltest\etltest.txt
点击内容标签Q根据情况进行修改,例如
点击字段标签
名称依次写入tradeidQacctnoQamtQcustnoQcustnameQcustidQcusttype_cnQvalueQ类型根据各个字D实际类型进行选择
定保存
点击保存创徏好的transformation?br />
点击q行q个转换?br />
点击launchQ开始运?br />
当所有状态都变成已完成时Q则转换完成?br />
目的Q?br />
上一个ktr生成的文本导入到数据库中?br />
操作步骤Q?br />
创徏一个transformationQ命名ؓEtltestTransfile2db.ktrQ创建数据库q接etltestQ点凅RInput】,选中【文本文件输入】,拖到ȝ口,释放鼠标Q双L开
文g名称里面写入D:\etltest\etltest.txt
点击内容标签Q分隔符写入@@Q将头部的钩L
点击字段标签Q名UCơ写入tradeidQacctnoQamtQcustnoQcustnameQcustidQcusttype_cnQvalueQ类型根据各个字D实际类型进行选择
点击【Transform】,选中【字D选择】,拖到ȝ口,释放鼠标
点击【Output】,选中【表输出】,拖到ȝ口,释放鼠标
建立【文本文件输入】和【字D选择】与【字D选择】和【表输出】的q接
双击【表输出】,目标表中写入trade_allQ提交记录数量写?Q确定保存?br />
双击【字D选择】,点击 获取选择的字D,再点击Edlt MappingQ点击OK定Q编辑所有字D对应关p,点确定?br />
点击q行q个转换。,则将上一个ktr中生成的文本Q导入到数据库当中?br />
目的Q?br />
上两个transformation一起在同一个job里面调用执行?br />
操作步骤Q?br />
在EtlscriptJob面Q点凅RCore Objects】,点击【Job entries】,选中【START】拖动到ȝ口释N标,再选中两个【Transformation】,拖动CH口释放鼠标Q徏立【START】和 【Transformation】与【Transformation】之间的q接?br />
双击W一个【Transformation】,在Transformation filename中写入D:\etltest\EtltestTrans.ktrQ确定保存?br />
同时另外一个【Transformation】,路径指向D:\etltest\EtltestTransfile2db.ktrQ保存?br />
点击保存创徏好的job?br />
点击q行q个转换?br />
待所有Q务都昄成功Q则为job调用transformationq行成功?br />