当前位置:文档之家› kettle操作文档

kettle操作文档

Kettle操作文档1.Kettle介绍。

(2)2. Kettle下载。

(2)3.使用规范和注意事项。

(3)3.1.配置数据库的全局变量。

(3)3.2.文件命名规范(不要用汉字)。

(3)3.3.文件存放位置。

(3)3.4.配置启动任务文件。

(3)3.5.注意事项。

(4)4. Kettle部署使用。

(4)4.1.启动kettle。

(4)4.2.创建转换文件。

(5)4.2.1.使用标识字段实现新增数据。

(5)4.2.2.使用时间戳实现新增或修改数据。

(11)4.2.3.使用时间比较实现新增或修改数据。

(14)4.2.4.使用对某一数据值比较实现新增或修改数据。

(17)4.3.创建任务文件。

(19)4.4.命令行启动任务。

(20)1.Kettle介绍。

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于政府部门来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。

Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定,提供了图形化界面,使用很方便。

Kettle中有两种脚本文件,transformation和job,transformation 完成针对数据的基础转换,job则完成整个工作流的控制。

2.Kettle下载。

Kettle可以在http://2.2.2.240/bbs/网站下载kettle压缩包,因kettle为绿色软件,解压即可使用。

这个压缩包,公司加了一些功能,跟官网下载的不太一样,建议使用公司论坛上的压缩包。

资料网站:/。

注:解压路径尽量不要有中文。

.kettle:存放kettle的一些环境变量信息,资源库的信息。

jre6:存放java运行库文件(1.6版本)。

launcher:存放启动的文件以及启动的配置信息。

lib:存放kettle的库文件。

libext:存放用到的外部库文件。

libswt:存放用到的界面库文件。

plugins:存放插件文件。

resources:存放编写的转换和任务文件,以及日志和任务配置信息。

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文件配置数据库全局变量。

属性:HostName,DatabaseName,PortNumber,UserName,Password。

规则:地市名+数据库名+属性名=值,且命名时第一个单词以小写字母作为开头,后面的单词则用大写字母开头。

如:昆山的ebcmks数据库,配置如下:ksEbcmksHostName=2.2.2.7ksEbcmksDatabaseName=ebcmksksEbcmksPortNumber=1433ksEbcmksUserName=saksEbcmksPassword=powerdata在工具中使用方法为:${ksEbcmksHostName}。

3.2.文件命名规范(不要用汉字)。

转换文件用操作数据库的表名(大写中文首字母)。

任务文件用项目名。

配置启动任务文件用项目名。

日志文件用“kettlelog_项目名.log”。

3.3.文件存放位置。

文件统一放到resources目录下。

存放规则:项目名目录->(transformations目录,jobs目录),config目录,logs目录;其中transformations目录主要存放转换文件,jobs目录存放任务文件,config目录存放配置启动任务文件(需要执行的任务文件配置信息)。

如昆山:项目名目录为:ks,转换文件目录:transformations,任务文件目录:jobs,配置文件目录:config,日志文件目录:logs。

3.4.配置启动任务文件。

配置文件统一放到:项目名目录->config目录下。

文件后缀名为:bat(批处理文件)。

编写规则:Kitchen.bat -file=%cd%\resources\任务文件(从项目名目录开始)-level=日志等级-log=resources\logs\日志文件(以工具主目录为起始目录),之间用空格分割;如:Kitchen.bat -file=%cd%\resources\ks\jobs\ebcmks.kjb -level=Basic -log=resources\logs\kettlelog_ebcmks.log,其中level等级包括(Basic, Detailed, Debug, Rowlevel, Error, Nothing)。

如下:3.5.注意事项。

1):路径和文件名称不要使用中文。

2):在只进行新增操作时,如果两边的表字段数量不一样,应把“表输出”的specify database 选中。

3):启动任务只需执行主目录下的start.bat文件。

4):在任务中选择一个交换时的目录应使用相对路径,如:应把“D:\kettle\kettle4.2.0\resources\ks\transformations\T_WORKFLOW_GZLCSL.ktr”修改为:“${KETTLE_HOME}\resources\ks\transformations\T_WORKFLOW_GZLCSL.ktr”,使用${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.2.1.使用标识字段实现新增数据。

如:传输人员的轨迹信息。

单击菜单项的文件->新建->转换,创建一个转换文件;保存文件名为:WZXX路径为主目录下的resources\ks\transformations\WZXX.ktr;右键选择“转换设置”,把转换名字修改为:轨迹信息;如图3.图3把左边菜单“输入”下的“表输入”,通过鼠标左键拖到主界面中,并双击“表输入”,如图4。

图4单击图4界面中的“新建”按钮,创建源数据连接信息,弹出框如图5。

Connection Name:ebcmks。

(连接库的名称)Connection Type:MS Sql Server。

(数据库类型)Host Name:通过Ctrl+Alt+Space(空格),选择ksEbcmksHostName(也可直接输入)。

(数据库的服务器IP地址)Database Name:${ksEbcmksDatabaseName}。

(数据库名称)Port Number:${ksEbcmksPortNumber}。

(数据库端口号)User Name:${ksEbcmksUserName}。

(数据库用户名)Password:${ksEbcmksPassword}。

(数据库密码)说明:使用${value}表示的value值,都是在kettle.properties文件中配置的变量名。

配置格式为:ksEbcmksDatabaseName=ebcmks。

配置好上面的信息之后,可以用“Test”按钮进行测试,如果连接成功,单击“OK”按钮。

图5在图4中的Sql面板中输入“select* from t_emop_wzxx where isNUll(flag,'0')<>'1'”可以通过“预览”按钮,查看数据,如果数据量比较大的情况下可能会报错,此时应把“表输入”的“记录数量限制”修改为100,正式转换时应把值修改为0,单击“OK”。

与“表输入”同理,把左边菜单中的“表输出”用鼠标拖到主界面中,按住Shift键,用鼠标把“表输入”与“表输出”连接起来,如图5。

图5“表输出”的功能就是往表里面新增数据,在图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}。

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脚本”拖到主界面中,并通过鼠标把“表输出”与“执行SQL脚本”连接起来,如图9。

图9“执行SQL脚本”的功能就是执行里面写sql语句,双击“执行SQL脚本”,配置如下信息(图10):数据库连接:ebcmks。

Sql面板中输入:update t_emop_wzxx set flag='1'where uuid='?'。

“执行每一行”前面的勾打上。

“变量替换”前面的勾打上。

参数中:选中UUID。

运行该转换文件,单击左上角的按钮启动,此时下面会显示执行结果信息,如图11。

图114.2.2.使用时间戳实现新增或修改数据。

相关主题