1、kettle操作文档docKettle 操作文档1.Kettle 介绍。 22. Kettle 下载。 23.使用规范和注意事项。 33.1. 配置数据库的全局变量。 33.2. 文件命名规范(不要用汉字) 。 33.3. 文件存放位置。 33.4. 配置启动任务文件。 33.5. 注意事项。 44. Kettle 部署使用。 44.1. 启动 kettle 。 44.2. 创建转换文件。 54.2.1. 使用标识字段实现新增数据。 54.2.2. 使用时间戳实现新增或修改数据。 114.2.3. 使用时间比较实现新增或修改数据。 144.2.4. 使用对某一数据值比较实现新增或修改数据。 1
2、74.3. 创建任务文件。 194.4. 命令行启动任务。 201.Kettle 介绍。ETL ( Extract-Transform-Load 的缩写,即数据抽取、转换、装载的过程)门来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种etl,对于政府部工具的使用,必不可少。Kettle 是一款国外开源的 etl 工具,纯 java 编写,绿色无需安装,数据抽取高效稳定,提供了图形化界面, 使用很方便。 Kettle 中有两种脚本文件, transformation 和 job,transformation完成针对数据的基础转换, job 则完成整个工作流的控制。2.Kettle
3、下载。Kettle 可以在网站下载 kettle 压缩包,因 kettle 为绿色软件,解压即可使用。这个压缩包,公司加了一些功能,跟官网下载的不太一样,建议使用公司论坛上的压缩包。资料网站:。注:解压路径尽量不要有中文。.kettle: 存放 kettle 的一些环境变量信息,资源库的信息。jre6:存放 java 运行库文件( 1.6 版本)。launcher:存放启动的文件以及启动的配置信息。lib :存放 kettle 的库文件。libext: 存放用到的外部库文件。libswt: 存放用到的界面库文件。plugins: 存放插件文件。resources:存放编写的转换和任务文件,以及
4、日志和任务配置信息。ui:存放用到的的图片和配置信息。Kitchen.bat: 任务文件执行器(命令行模式) 。Pan.bat:转换文件执行器(命令行模式) 。set-pentaho-env.bat:设置 kettle 运行的环境变量。Spoon.bat:打开设计工具(界面方式) 。Spoon.ico,spoon.png: 工具的图标。start.bat:启动存放在 resources 目录下的任务配置文件。说明 .txt: 使用的规范和注意事项。3.使用规范和注意事项。3.1.配置数据库的全局变量。在 .kettle 目录下的 kettle.properties 文件配置数据库全局变量。属性
5、: HostName,DatabaseName,PortNumber,UserName,Password 。规则:地市名 +数据库名 +属性名 =值,且命名时第一个单词以小写字母作为开头,后面的单词则用大写字母开头。如:昆山的 ebcmks 数据库,配置如下:ksEbcmksHostName=2.2.2.7ksEbcmksDatabaseName=ebcmksksEbcmksPortNumber=1433ksEbcmksUserName=saksEbcmksPassword=powerdata在工具中使用方法为: $ksEbcmksHostName 。3.2.文件命名规范(不要用汉字) 。转换
6、文件用操作数据库的表名 (大写中文首字母 )。任务文件用项目名。配置启动任务文件用项目名。日志文件用“ kettlelog_ 项目名 .log ”。3.3.文件存放位置。文件统一放到 resources目录下。存放规则:项目名目录 -( transformations 目录, jobs 目录) ,config 目录 ,logs 目录;其中 transformations 目录主要存放转换文件,配置启动任务文件(需要执行的任务文件配置信息)jobs 目录存放任务文件, config 目录存放。如昆山:项目名目录为: ks,转换文件目录 :transformations, 任务文件目录: jobs
7、,配置文件目录 :config ,日志文件目录 :logs。3.4.配置启动任务文件。配置文件统一放到:项目名目录 -config 目录下。文件后缀名为: bat(批处理文件) 。编写规则: Kitchen.bat 任务文件(从项目名目录开始)日志文件(以工具主目录为起始目录) ,之间用空格分割-level= 日志等级;如 : Kitchen.bat -resourcesksjobsebcmks.kjb-log=resourceslogskettlelog_ebcmks.log ,其中 level 等级包括( Basic, Detailed, Debug, Rowlevel, Error, N
8、othing)。-level=Basic如下:3.5.注意事项。1):路径和文件名称不要使用中文。2):在只进行新增操作时, 如果两边的表字段数量不一样,选中。3):启动任务只需执行主目录下的 start.bat 文件。应把“表输出”的specify database4):在任务中选择一个交换时的目录应使用相对路径,如:应把 “D:kettlekettle4.2.0resourceskstransformationsT_WORKFLOW_GZLCSL.ktr ”修改为:“ $KETTLE_HOMEresourceskstransformationsT_WORKFLOW_GZLCSL.ktr ”
9、,使用$KETTLE_HOME 全局变量。5):在表里面新增字段后,如果在别的控件(如“表输入” )中没有找到新增的字段,此时应操作菜单 Tool-Database-Clear Cache ,把缓存清除掉。6):在预览数据时,如果数据量比较大的情况下可能会报错,此时应把“表输入”的“记录数量限制”修改为 100,正式转换时应把值修改为 0。4.Kettle 部署使用。4.1.启动 kettle 。把下载的压缩文件压缩到 D 盘根目录。双击 kettle4.2.0 目录下的 Spoon.bat 文件,出现 kettle 欢迎界面如图 1。图 1进入主界面如图 2。题 24.2.创建转换文件。4.
10、2.1. 使用标识字段实现新增数据。如:传输人员的轨迹信息。单击菜单项的文件 -新建 - 转换,创建一个转换文件; 保存文件名为: WZXX 路径为主目录下的 resourceskstransformationsWZXX.ktr ;右键选择“转换设置” ,把转换名字修改为:轨迹信息;如图 3.图 3把左边菜单“输入”下的“表输入” ,通过鼠标左键拖到主界面中,并双击“表输入” ,如图 4。图 4单击图 4 界面中的“新建”按钮 ,创建源数据连接信息,弹出框如图 5。Connection Name:ebcmks 。 (连接库的名称 )Connection Type:MS Sql Server 。
11、 (数据库类型 )Host Name: 通过 Ctrl+Alt+Space( 空格 ),选择 ksEbcmksHostName (也可直接输入) 。(数据库的服务器 IP 地址)Database Name:$ksEbcmksDatabaseName 。(数据库名称)Port Number:$ksEbcmksPortNumber 。(数据库端口号)User Name:$ksEbcmksUserName 。(数据库用户名)Password:$ksEbcmksPassword 。(数据库密码)说明:使用 $value 表示的 value 值,都是在 kettle.properties 文件中配置的变
12、量名。配置格式为: ksEbcmksDatabaseName=ebcmks。配置好上面的信息之后,可以用“ Test”按钮进行测试,如果连接成功,单击“ OK ”按钮。图 5在图 4 中的 Sql 面板中输入“ select* fromt_emop_wzxx whereisNUll(flag,0) 1 ”可以通过“预览”按钮,查看数据,如果数据量比较大的情况下可能会报错,此时应把“表输入”的“记录数量限制”修改为100,正式转换时应把值修改为0,单击“ OK”。与“表输入”同理,把左边菜单中的“表输出”用鼠标拖到主界面中,按住Shift键,用鼠标把“表输入”与“表输出”连接起来,如图5。图 5
13、“表输出”的功能就是往表里面新增数据,在图5 中双击“表输出” ,在弹出的窗口中单击“新建”按钮,创建目标数据连接信息(与源目标连接信息同理),配置信息如下,如图6:Connection Name:datacenter_ks 。Connection Type:MS Sql Server 。Host Name: 通过 Ctrl+Alt+Space( 空格 ),选择 ksDatacenter_ksHostName (也可直接输入) 。Database Name:$ksDatacenter_ksDatabaseName 。Port Number:$ksDatacenter_ksPortNumber
14、。User Name:$ksDatacenter_ksUserName 。Password:$ksDatacenter_ksPassword 。图 6表输出配置信息如下(图 7):数据库连接选为: datacenter_ks。目标表选择: t_emop_wzxx 。Specify database fileds 前面的勾打上。图 7单击图 7 中的 Database fileds 选项卡,如图 8,单击 Enter filed mapping, 在弹出框中单击 “猜一猜”,会把相同的字段匹配上,单击“确定” 。图 8把左边菜单中的“脚本”下的“执行 SQL 脚本”拖到主界面中,并通过鼠标把“表
15、输出”与“执行 SQL 脚本”连接起来,如图 9。图9“执行 SQL 脚本”的功能就是执行里面写(图 10):数据库连接: ebcmks。Sql 面板中输入: update t_emop_wzxxsql 语句,双击“执行 SQL 脚本”,配置如下信息set flag= 1 where uuid= ? 。“执行每一行”前面的勾打上。“变量替换”前面的勾打上。参数中:选中UUID。图 10运行该转换文件,单击左上角的 按钮启动,此时下面会显示执行结果信息,如图 11。图 114.2.2. 使用时间戳实现新增或修改数据。如:传输前一天的数据。单击菜单项的文件 -新建 - 转换,创建一个转换文件;保存
16、文件名为: XCJC 路径为主目录下的 resourceskstransformationsXCJC.ktr ;右键选择“转换设置” ,把转换名字修改为:现场检查;如图 12,“字段选择”在左边“转换”菜单下, “插入或更新”在左边“输出”菜单下。图 12“表输入”配置信息,只查询前昨天的数据,如图 13。图 13“字段选择” 的功能可以把前面的字段重命名, 把与目标库不同的字段名, 重命名为目标库的字段名;其配置信息,如图 14,图 14“插入或更新” 的功能是根据关键字找对应的记录, 如果找不到则执行新增, 否则执行更新,其配置信息,如图 15,用来查询的关键字就是用来比较的字段,通过“获
17、取和更新字段”按钮,来获取更新字段; 更新字段就是更新目标表的字段, 表字段: 目标表的字段; 流字段:前一步骤传过来的字段; Update:是否更新。图 154.2.3. 使用时间比较实现新增或修改数据。如:根据修改时间来判断数据是否需要传输, 只有当源数据的修改时间大于目标数据的修改时间时就修改这些数据或源数据是新增数据时就新增这些数据到目标数据库。单击菜单项的文件 -新建 - 转换,创建一个转换文件;保存文件名为: WRYJBXX 路径为主目录下的 resourceskstransformationsWRYJBXX.ktr ;右键选择“转换设置” ,把转换名字修改为:污染源基本信息;如图
18、 16。“插入”:在左边“输入”菜单下。“数据库查询” :在左边“查询”菜单下。“过滤记录” :在左边“ Flow ”菜单下。“空操作”:在左边“ Flow ”菜单下。“插入或更新” :在左边“输出”菜单下。图 16表输入配置信息,如图 17。图 17数据库查询就是把前一步骤的数据通过关键字与别的库中的记录进行比较,如图 18,等价于下面查询语句括号里面的内容:Select wrybh,wrymc,(select wrybh from datacenter_ks.t_wry_jbxx where wrybh=wry.wrybh and xgsj=wry.xgsj) as newwrybhfro
19、m t_wry_jbxx wry。查询所需的关键字:与上边括号中 where 后边的查询条件相同。查询表返回的值:与上边括号的值的别名相同。图 18“过滤记录”就是对前面传过来的值进行判断,如图 19。当 NEWWRYBH 为空时执行插入 /更新操作,否则执行空操作。图 19“空操作(什么也不做) ”表示一个提示信息,不执行任何操作。“插入或更新”如图 20。图 204.2.4. 使用对某一数据值比较实现新增或修改数据。如:通过目标数据表的 BH 的最大值,作为源数据的比较值,来更新或修改数据。单击菜单项的文件 -新建 - 转换,创建一个转换文件;保存文件名为: GZLCSL 路径为主目录下的
20、 resourceskstransformationsGZLCSL.ktr ;右键选择 “转换设置” ,把转换名字修改为:工作流程实例;如图 21。图 21获取编号最大值,配置信息如图 22,查询的是目标数据库的信息。图 22表输入,配置信息如图 23。Sql 面板的语句为: “ SELECT * FROMT_WORKFLOW_GZLCSL WHEREBH? ”。替换 Sql 语句里的变量:前面的勾打上。从步骤插入数据:选择获取编号最大值。执行每一行:前面的勾打上。图 23插入或更新,配置信息如图 24。图 244.3.创建任务文件。单击菜单项的文件 -新建 -作业,创建一个任务文件;保存文件
21、名为: ebcmks 路径为主目录下的 resourcesksjobsebcmks.kjb ;右键选择“作业设置” ,把 Job 名字修改为:昆山转换任务;配置如图 25 的信息。Start:在左边“通用”菜单下。Transformation,Transformation2,Transformation3,Transformation4: 在左边“通用”菜单下。Success:在左边“通用”菜单下。图 25Start 配置信息如图 26。重复:前面的勾如果打上,表示任务会循环执行。类型:任务执行方式。Time of day:1.表示每天凌晨 1 点执行。图 26Transformation配置
22、信息如图27。Job 名称修改为:轨迹信息,其中转换文件名的格式为:名 转换文件;如: $KETTLE_HOMEresourceskstransformationsWZXX.ktr。项目Transformation2 , Transformation3,Transformation4同理,job名称,转换文件名分别设为:Transformation2-job 名称:现场检查,转换文件名称:$KETTLE_HOMEresourceskstransformationsXCJC.ktr 。Transformation3-job 名称:污染源基本信息,转换文件名称:$KETTLE_HOMEresour
23、ceskstransformationsWRYJBXX.ktr 。Transformation4-job 名称:工作流程实例,转换文件名称:$KETTLE_HOMEresourceskstransformationsGZLCSL.ktr 。图 27执行结果如图 28。图 284.4.命令行启动任务。配置启动任务文件。在 resourcesconfig 目录下新建 ebcmks.bat 文件。内容为:Kitchen.bat -resourcesksjobsebcmks.kjb -level=Basic-log=resourceslogskettlelog_ebcmks.log-file :为需要执行的任务文件,格式为:-level: 日志的等级。-log: 日志文件,格式为:日志文件。项目名任务文件。之间用空格分隔。如果有多个任务文件需要执行,需写多个配置文件。配置好上面信息其保证正确后,就可以运行主目录下的 start.bat 文件,启动任务。也可以在服务器中作任务计划,定时执行 start.bat 文件即可。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1