RDB/ETL

PDL command line 수행

세모데 2020. 9. 10. 12:15

1. Pan 

transformation (.ktr)을 terminal에서 수행시 사용

windows linux
pat.bat  /file:<ktr file> pan.sh /file:<ktr file>

 

2. Kitchen

Job (.kjb)을 terminal에서 수행시 사용

windows linux
kitchen.bat  /file:<kjb file> kitchen.sh /file:<kjb file>

 

3. Exit code

Pan 또는 Kitchen 수행후 수행결과(exit) 코드 체크

 

echo %ERRORLEVEL%  (window)

echo $?                    (linux)

Exit 코드 내용
0 성공
1 Errors occurred during processing
2 An unexpected error occurred during loading/running of the Transformation/Job
3 Unable to prepare and initialize the Transformation (only in Pan)
7 The Transformation/Job couldn't be loaded from XML or the repository
8 Error loading steps or plugins (error in loading one of the plugins mostly)
9 Command line usage printing

 

4. 변수 지정

 

1) spoon에서 변수 지정

2) Pan / Kitchen에서 변수 지정

 

Pan.bat  /param:"FILENAME=test"  /file:c:\pdi\work\test.ktr   (window)

 

5. Arguments 사용

1) spoon 

Job 또는 transformation 수행시  Run Options 창이 뜰때 Argument(인자) 버튼을 클릭하여 argument 지정

 

2) pan or kitchen

 

Pan.bat /file:c:\pdi\work\test.ktr  test1

 

6. loglevel과 logging 

아래와 같은 형식으로 pan, kitchen에서 loglevel과 log 파일을 지정해서 수행

pan.bat /file:"c:\pdi\work\test.ktr" /level:Detailed > c:\pdi\work\log\test.log (-file="test.ktr" 가능)

 

7. 자동화 스크립트 생성

1) windows

 

아래 내용을 .bat으로 만들어 scheduler에 등록

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

for /f "tokens=1-3 delims=/- " %%a in ('date /t') do set    XDate=%%c%%b%%a 
for /f "tokens=1-3 delims=: " %%a in ('time /t') do set    XTime=%%b:%%c 

 

set home=C:\pdi\work

 

kitchen.bat /file:%home%\test.kjb /level:Detailed >> %home%\logs\test_"%Xdate%-%XTime%".log

 

 

2) linux

아래 내용을 .sh로 만들어 cron에 등록

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

home=/home/pdi/work

pan_cmd=/data/pdi/pan.sh

kit_cmd=/data/pdi/kitchen.sh

java=/app/jdk1.8

 

export KETTLE_HOME=$home

export LANG=C

export PATH=$PATH:$java/bin

 

$kit_cmd -param:"name=test1" -file:${home}/test.kjb -level:Detailed >> ${home}/test_`date +%y%m%d-%H%M`.log

$pan_cmd -param:"name=test1" -file:${home}/test.ktr -level:Detailed >> ${home}/test_`date +%y%m%d-%H%M`.log