반응형
- 이 문서는 PENTAHO의 공식 document를 참고하였습니다.
- 버전은 가장 최신인 9.1 CE 기준으로 작성하였습니다.
- 저도 공부 중입니다.. 틀리거나 이상한 부분이 있으면 댓글 달아주셔요..^^
이 글은 아래와 같은 작업을 위한 것입니다.
- Linux shell script로 KETTLE을 실행시키는 파일을 만들고, 제대로 수행되는지 검증하는 방법
우선 Exit Code에 대하여 알아보자.
kettle파일은 실행 완료 후, 6가지의 Exit Code를 리턴합니다. 그것을 보고, 어떠한 결과가 도출되었는지 자세히 알 수 있습니다. 이를 단순 에러의 원인을 찾는 용도로 사용할 수 있지만, shell script에 넣어 자동으로 kettle 파일 실행 결과에 따라 처리를 수행할 수 있게 만들 수 있습니다. 아래는 Exit Code의 결과를 모아 놓은 표입니다.
Exit Code
Exit Code | 코드의 내용 |
0 | Success! |
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 |
이제는 위의 Exit Code로 shell script를 작성해 봅시다.
성공적으로 결과가 도출되었으면, Result ==> Success를 출력합니다. 그렇지 못하고 에러가 나오면, Result ==> Fail로 출력합니다.
이러한 포멧을 활용하여, 다양한 행동을 할 수 있습니다. 예를 들어 KETTLE파일의 결과가 파일이라고 가정했을 때,
이것이 성공적으로 나오게 되면, 이를 필요한 곳에 이동을 시킬 수 도 있고, 검증하게 할 수도 있습니다. 다양한 방법으로 사용하시면 되겠습니다.
1. KETTLE FILE 실행하는 Script 생성
#!/bin/bash
################################################################
# Base Parameter
################################################################
KETTLE_FILE=/root/test/feed.kjb
/root/data-integration/kitchen.sh /file:$KETTLE_FILE
if [ $? -eq 0 ]; then
echo "Result ==> Success"
else
echo "Result ==> Fail"
fi
echo "Task is finished..."
2. KETTLE FILE 실행하는 Script 추가 예시
- parameter 설정해서 파일 실행시킨 결과로 나온 JSON파일을 azcopy로 azure blob에 이동시키는 shell script
#!/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 = 리리리리리리
/root/data-integration/kitchen.sh /param:DB1_HOST=$DB1_HOST /param:DB1_USER=$DB1_USER /file:$KETTLE_FILE
if [ $? -eq 0 ]; then
echo "Result ==> Success"
azcopy copy '/result/*.json' '경로로로' --content-type 'application/json;charset=utf-8'
else
echo "Result ==> Fail"
curl --data-raw "{'message': $ERR_MESSAGE}" --location --request POST "경로" --header "Content-Type: application/json"
fi
echo "Task is finished..."
반응형
'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 |
댓글