본문 바로가기
PENTAHO/INFO

[Pentaho] Linux에서 KETTLE 실행 Shell Script 작성 및 Exit Code 확인하기

by 오늘은강박사갈거야~~ 2021. 9. 16.
반응형

이 글은 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 알림까지 확장 가능함.

반응형

댓글