kettle使用命令行来运行ktr和kjb

1:cmd方式运行

1.ktr的运行:运行transformation文件是通过Pan.bat来运行的。

打开cmd命令行窗口,转到Pan.bat所在的目录,如d:\data-integration,然后执行文件的命令为:pan /file D:\03works\ZYWSPT\kettle\test.ktr

2.kjb的运行:运行job文件是通过kitchen.bat来运行的。

打开cmd命令行窗口,转到Pan.bat所在的目录,如d:\data-integration,然后执行文件的命令为:kitchen /file D:\03works\ZYWSPT\kettle\.kjb

2.bat文件运行

如果觉得通过打开命令行输入麻烦,我们可以把它写在一个批处理文件中。如:

@echo off
set panpath=C:\pdi-ce-5.4.0.1-130\data-integration
set kpath=D:\03works\ZYWSPT\kettle

c:
cd  %panpath%
pan /file %kpath%\test.ktr "-param:YESTERDAY_1=%YesterDay%"

exit

把这些内容保存在pan.bat里,通过双击panKtr.bat就可以执行ktr文件了。

同理执行job

保存在kitchenKjb.bat里,双击它,也可以执行kjb文件。

2 :kettle 的 kitchen.bat 后面参数说明

Options:
/rep        : Repository name
/user       : Repository username
/pass       : Repository password
/job        : The name of the job to launch
/dir        : The directory (dont forget the leading /)
/file       : The filename (Job XML) to launch
/level      : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
/logfile    : The logging file to write to
/listdir    : List the directories in the repository
/listjobs   : List the jobs in the specified directory
/listrep    : List the available repositories
/norep      : Do not log into the repository
/version    : show the version, revision and build date
/param      : Set a named parameter <NAME>=<VALUE>. For example -param:FOO=bar
/listparam : List information concerning the defined parameters in the specified job.
/export     : Exports all linked resources of the specified job. The argument is the name of a ZIP
file.


而options 后面可以是=也可以是:也可以是空格

kitchen.bat /file d:\   或者 -file=D:\ 或者/file:D:\

下面是windows系统下一个完整的执行kettle程序的 bat 批处理文件的内容

======================================

e:

cd E:\Tools\data-integration
Kitchen.bat -rep repname -user admin -pass admin -dir /dirname -job jobname -level=basic>D:\kettlelog\kettlelog.log

失败:

我一直想在param里传一个参数之就是当前日期的前一天,一直没有成功:

如下代码:

@echo off
set panpath=C:\pdi-ce-5.4.0.1-130\data-integration
set kpath=D:\03works\ZYWSPT\kettle

for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get LocalDateTime /value') do (
  set t=%%a
)
set Today=%t:~0,4%-%t:~4,2%-%t:~6,2%
::echo %Today% (当前日期)

call :Date2Day %Today% 1 YesterDay 
echo %YesterDay% (当前日期的前一天)

c:
cd  %panpath%
pan /file %kpath%\test.ktr "-param:YESTERDAY_1=%YesterDay%"

exit

:Date2Day (当前日期前后日期加减的方法)
@echo off&setlocal
for /f "tokens=1-3 delims=/-:\, " %%a in ('echo/%~1') do (
set /a yy=%%a,mm=100%%b%%100,dd=100%%c%%100)
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
set /a i=j-%~2,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %~3=%yy%-%f%%mm%%f%-%dd%&goto :EOF

Pause

我的kettle ktr的代码很简单,就是获取一个输入参数,然后,输出到txt文件

160752_pqcb_2903180.png

160907_ilc4_2903180.png

一直没有成功,不知道错误出在什么地方,如有大神看到,请给予指正,谢谢

转载于:https://my.oschina.net/maojindaoGG/blog/858431

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值