반응형
이 글은 Pentaho 9.1 CE 공식 문서를 참고하여 정리하였습니다.
공부하며 이해한 내용을 바탕으로 작성하였기에 오류가 있을 수 있습니다.
발견 시 댓글로 알려주시면 감사하겠습니다.
1. 핵심 요약
- Linux 환경에서 Kettle(PDI) 작업을 Shell Script로 실행할 수 있으며, 실행 결과는 Exit Code로 판단할 수 있다.
- Pentaho는 작업 유형에 따라 두 가지 실행 스크립트를 제공한다:
- kitchen.sh: Job(.kjb) 파일을 실행할 때 사용
- pan.sh: Transformation(.ktr) 파일을 실행할 때 사용
- Exit Code를 기반으로 성공 여부를 판단하고, 알림이나 후속 작업 처리를 자동화할 수 있다.
2. 상세 내용 설명
2-1. Exit Code 종류
Pentaho는 실행 결과에 따라 다음과 같은 종료 코드를 반환한다:
Exit Code설명
0 | 성공 (Success) |
1 | 처리 도중 오류 발생 (Errors occurred during processing) |
2 | 실행 중 예상치 못한 오류 (Unexpected error during running/loading) |
3 | Transformation 초기화 실패 (Pan 전용) |
7 | XML 또는 저장소에서 로드 실패 |
8 | Step 또는 플러그인 로딩 실패 |
9 | 커맨드 라인 사용법 출력 |
kitchen.sh, pan.sh 모두 동일한 Exit Code 체계를 따릅니다.
2-2. kitchen.sh 실행 예시 – 실제 업무 스크립트
📌 설명: Job(.kjb) 파일을 실행하고, 성공 시 결과 파일을 업로드하고, 실패 시 Slack 알림을 전송하는 스크립트입니다.
#!/bin/bash
################################################################
# Base Parameter
################################################################
DT=$(date '+%Y/%m/%d %H:%M:%S')
ERR_MESSAGE="[$DT] Error generating"
KETTLE_FILE=/root/test/feed.kjb
DB1_HOST=로로로로로로
DB1_USER=리리리리리리
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/여기에_웹훅_URL_입력"
################################################################
# Execute Kettle Job
################################################################
/root/data-integration/kitchen.sh \
/param:DB1_HOST=$DB1_HOST \
/param:DB1_USER=$DB1_USER \
/file:$KETTLE_FILE
################################################################
# Post-processing based on result
################################################################
if [ $? -eq 0 ]; then
echo "Result ==> Success"
azcopy copy "/result/*.json" "경로로로" --content-type "application/json;charset=utf-8"
else
echo "Result ==> Fail"
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"$ERR_MESSAGE\"}" \
$SLACK_WEBHOOK_URL
fi
echo "Task is finished..."
2-3. pan.sh 실행 예시 – 단일 Transformation 처리
📌 설명: Transformation(.ktr) 파일을 실행하고, 성공 여부에 따라 메시지를 출력하는 기본 예제입니다.
#!/bin/bash
################################################################
# Base Parameter
################################################################
TRANS_FILE=/home/user/etl/cleaning.ktr
/root/data-integration/pan.sh \
/file:$TRANS_FILE
if [ $? -eq 0 ]; then
echo "Transformation 성공"
else
echo "Transformation 실패"
fi
3. 결론
Pentaho의 kitchen.sh, pan.sh를 Shell Script로 실행하면, 다양한 종료 코드를 통해 실행 결과를 자동 판단할 수 있다.
이 Exit Code를 활용해 후속 동작을 분기 처리하면 배치 자동화 및 오류 대응에 좋음.
단순 실행뿐 아니라, 파라미터 전달, 로그 저장, Slack 알림까지 확장 가능함.
반응형
'PENTAHO > INFO' 카테고리의 다른 글
[PENTAHO] Linux에서 KETTLE 실행하는 방법 (0) | 2021.09.12 |
---|---|
[PENTAHO] Parameter를 활용하여, Linux에서 KETTLE 실행시키기 (0) | 2021.09.12 |
[PENTAHO] GROUP BY와 MEMORY GROUP BY의 차이점 (0) | 2021.07.28 |
[PENTAHO ] Data Integration INDEX (0) | 2021.07.12 |
댓글