前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kettle使用命令行来运行ktr和kjb

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

作者头像
用户5640963
发布2019-07-26 10:15:39
3K0
发布2019-07-26 10:15:39
举报
文章被收录于专栏:卯金刀GG

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文件

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档