标签:log kettle sh job 文件夹 使用 执行
Kettle遇到的问题
Kettle基础
- kettle有两种保存方式:一种是资源库方式(数据库),一种是文件格式(XML)
- kettle有两种类型Transformation和Job,Transformation完成针对数据的基础转换,Job则完成整个工作流的控制
3.kettle跨平台使用
a) 在linux下,运行kettle的相关步骤如下:
1.进入到kettle部署的路径
2.执行chmod.sh,将所有shell文件添加可执行权限
3.在kettle路径下,如果要执行transformation,就运行./pan.sh -file=?.ktr -debug=debug -log=log.log,其中,-file说明你要运行transformation文件所在的路 径,-debug说明日志输出的级别,-log说明日志输出的路径
4.同理,对于job的执行,请将./span.sh更换成./kitchen.sh,其他不变
2.kettle环境变量的使用
a) 在transformation中,core objects——>job——>set variable,可以设置环境变量, 对于绝对路径和相对路径转换有帮助
3.kettle定时功能
在job下的start模块下,有一个定时功能,可以每日,每周等方式进行定时,对 于 周期性的ETL很有帮助
a) 使用资源库登录时(repository)登录时,默认的用户名和密码是admin/admin
b) 当job是存放在资源库(一般资源库都使用数据库)中时,使用kitchen.sh执行job 时,需使用如下命令行:
Kitchen.sh/rep kettlr/user admin /pass admin /job job名
c) 当job没有存放在资源库中而存在文件系统中时,使用kitchen.bat执行job时,需 使用如下命令行:
Kitchen.sh/norep /file user-transfer-job.kjb
d) 可以使用命令行执行job后,就可以使用windows或者linux的任务调度来定时执 行任务了
4.kettle部署
a) 在linux下某目录下创建一个文件夹,将从官网上下载的kettle(我的是pdi
-ce-5.1.0.0-752.zip)解压后放到该文件夹下
b) 在解压的路径下找到kitchen.sh所在的路径,进入该目录,通过chmod+x *.sh赋予.sh 文件执行权限
c) 输入命令./kitchen.sh,如果出现帮助信息说明部署成功
5.shell脚本执行kettle job或者转换
以执行一个转换为例:
a) 我的kettle位置:/home/kettle
Kitchen.sh(用来执行job)和pan.sh(用来执行转换)等都在data-integration下面
b) Transtion下面有一个实现文件转移的job和两个文件夹:源文件夹和目标文件夹, 执行job的shell脚本也放在此文件夹下:
Startup.sh的内容:
/home/kettle/data-integration/kitchen.sh-file=/home/kettle/transtion/move.kjb log=log.log
c) 进入startup.sh在的路径:
cd /home/kettle/trantion
D) 输入命令:
./startup.sh即可执行move.kjb
6.kettle环境变量配置及配置文件
很多人会忽视kettle的环境变量配置,因为不配置它,在linux下一样可以执行kettle的job和转换,然而,配置环境变量,尤其是使用配置文件是非常有好处的,比如上面的那个job,在通过spoon图形化界面设置这个job时,源文件夹路径和目标文件夹路径我都定死了:这样的坏处是很明显的:如果在别的linux服务器上执行这个job,别人又不知道你的设定的源文件夹路径和目标文件夹路径等变量,显然是不能执行的,这个job也没多大意义(假如你使用了kettle做了很大的数据处理工程,里面的文件路径,数据库连接URL,及用户名和密码都设定死了,比人在他的linux下无法使用)
这时,就需要设置kettle的配置文件:
a) 配置kettle环境变量,最简单的方法,只要执行命令KETTLE_HOME=路径就可以了
export KETTLE_HOME=/root
输入:echo ${KETTLE_HOME}.看到/root,且在这个路径下输入:|| -la,会看到.kettle 文件夹,说明配置成功
b) 配置kettle.properties文件
进入.kettle文件夹,会看到kettle.properties文件,只要在里面配置需要的变量,在想要的地方通过${}就能取得变量的值,这样就实现了动态配置kettle job或者转换相关的参数
7.后台执行job或转换(适合定时执行job)
./home/kettle/data-integration/kitchen.sh -file=/home/kettle/trantion/move.kjb log=log.log &(“&”就是这个符号)
标签:log,
kettle,
sh,
job,
文件夹,
使用,
执行
From: https://www.cnblogs.com/zhangdapangzo/p/17211694.html