Linux下用命令來執行kettle文件資源庫的文件ktr與kjb的方法
时间:2023-08-20 13:07:00
1. 准备工作
一个简单的job,一个简单的trans。
trans:读取download所有文件名在目录中输出为文件。界面测试成功
成功生成目标文件:
job:创建文件【界面模式测试实施成功】
执行结果:
删除界面执行测试结果的文件,以免影响观察。
2. linux环境以命令执行job和trans
Pan是用於执行trans的PDI命令行工具。
Kitchen用于执行作业PDI命令行工具。
1
2
a. Pan命令行的选项和语法
语法:
pan.sh -option=value arg1 arg2
1
命令行参数:
Switch
Purpose
rep
Enterprise or database repository name, if you are using one
user
Repository username
pass
Repository password
trans
The name of the transformation (as it appears in the repository) to launch
dir
The repository directory that contains the transformation, including the leading slash
file
If you are calling a local KTR file, this is the filename, including the path if it is not in the local directory
level
The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
logfile
A local filename to write log output to
listdir
Lists the directories in the specified repository
listtrans
Lists the transformations in the specified repository directory
listrep
Lists the available repositories
exprep
Exports all repository objects to one XML file
norep
Prevents Pan from logging into a repository. If you have set the KETTLE_REPOSITORY, KETTLE_USER, and KETTLE_PASSWORD environment variables, then this option will enable you to prevent Pan from logging into the specified repository, assuming you would like to execute a local KTR file instead.
safemode
Runs in safe mode, which enables extra checking
version
Shows the version, revision, and build date
param
Set a named parameter in a name=value format. For example: -param:FOO=bar
listparam
List information about the defined named parameters in the specified transformation.
maxloglines
The maximum number of log lines that are kept internally by PDI. Set to 0 to keep all rows (default)
maxlogtimeout
The maximum age (in minutes) of a log line while being kept internally by PDI. Set to 0 to keep all rows indefinitely (default)
示例:
sh pan.sh -rep=initech_pdi_repo -user=pgibbons -pass=lumburghsux -trans=TPS_reports_2011
1
本地trans调用示例:
./pan.sh -file=/home/hadoop/workplace/kettle/trans/test_cml.ktr -norep
1
b.Kitchen命令行参数及语法:
语法与Pan同样,参数也有点不同。
Switch
urpose
rep
Enterprise or database repository name, if you are using one
user
Repository username
pass Repository
password
job
The name of the job (as it appears in the repository) to launch
dir
The repository directory that contains the job, including the leading slash
file
If you are calling a local KJB file, this is the filename, including the path if it is not in the local directory
level
The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)
logfile
A local filename to write log output to
listdir
Lists the sub-directories within the specified repository directory
listjob
Lists the jobs in the specified repository directory
listrep
Lists the available repositories
export
Exports all linked resources of the specified job. The argument is the name of a ZIP file.
norep
Prevents Kitchen from logging into a repository. If you have set the KETTLE_REPOSITORY, KETTLE_USER, and KETTLE_PASSWORD environment variables, then this option will enable you to prevent Kitchen from logging into the specified repository, assuming you would like to execute a local KTR file instead.
version
Shows the version, revision, and build date
param
Set a named parameter in a name=value format. For example: -param:FOO=bar
listparam
List information about the defined named parameters in the specified job.
maxloglines
The maximum number of log lines that are kept internally by PDI. Set t 0 to keep all rows (default)
maxlogtimeout
The maximum age (in minutes) of a log line while being kept internally by PDI. Set to 0 to keep all rows indefinitely (default)
執行本地job的命令行語句:
/home/kettle/data-integration/kitchen.sh -file=/home/kettle/transition/move.kjb -log=log.log
1
形式:
$kitchen路徑 -file=$job路徑 log=$log路徑
1
調用pan結果:
調用kitchen結果:
3.個人常用命令選項
由於我當前的工作環境都是執行本地的job和trans文件,所以常用的命令選項有:
命令
描述
-file
job或trans文件路徑
-norep
標明不是資源庫里的文件
-param
參數設置
-logfile
log輸出文件名
-level
log級別 (Basic, Detailed, Debug, Rowlevel, Error, Nothing)