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
'RDB > ETL' 카테고리의 다른 글
PDI Home 디렉토리 변경 (0) | 2020.09.10 |
---|---|
PDI 프로젝트 디렉토리 지정 (0) | 2020.09.10 |
PDL transformation 반복 사용 (0) | 2020.09.08 |
PDI db 데이터 처리 로직 (0) | 2020.09.02 |
PDI query 변수 처리 (0) | 2020.09.02 |