티스토리 뷰

DEV/ETC

ETL PENTAHO SPOON KITCHEN

SBP 2025. 5. 8. 10:33
Kitchen 명령줄 도구를 사용하여 Pentaho Job 실행하기

Kitchen 명령줄 도구를 사용하여 Pentaho Job 실행하기

Pentaho Data Integration (PDI)에서 디자인된 Job (.kjb 파일)은 GUI 도구인 Spoon 뿐만 아니라 명령줄 환경에서도 실행할 수 있습니다. 이때 사용되는 스크립트가 바로 kitchen.sh (Linux/Unix) 입니다. kitchen.sh는 ETL 작업을 자동화하거나 크론탭(cron)과 같은 스케줄링 도구와 연동하여 정기적으로 실행할 때 매우 유용합니다.

1. kitchen.sh 스크립트 위치

kitchen.sh 스크립트는 PDI Community Edition을 설치(압축 해제)한 디렉토리 내의 data-integration 하위 폴더에 위치합니다.

/path/to/your/pentaho/data-integration/kitchen.sh

스크립트를 실행하기 전에 해당 파일에 실행 권한이 있는지 확인하세요. 필요하다면 chmod +x kitchen.sh 명령을 사용합니다.

2. 기본 실행 문법

kitchen.sh를 실행하는 기본적인 문법은 다음과 같습니다.

./kitchen.sh [필수 옵션] [추가 옵션...]

kitchen.sh 스크립트는 실행할 Job을 지정하는 필수 옵션과 로깅 수준, 파라미터 전달 등의 추가 옵션을 가집니다.

3. 필수 옵션: 실행할 Job 지정

Kitchen에게 어떤 Job을 실행할지 알려주는 방법은 두 가지가 있습니다. 파일 시스템에서 Job 파일을 직접 지정하거나, Pentaho 저장소(Repository)에 저장된 Job을 지정하는 것입니다. 둘 중 하나는 반드시 사용해야 합니다.

파일 시스템의 Job 실행

/file 옵션을 사용하여 실행할 .kjb 파일의 경로를 지정합니다.

  • /file:<Job 파일 경로>: 실행할 .kjb 파일의 절대 또는 상대 경로를 지정합니다.
./kitchen.sh /file:/home/user/pentaho_jobs/my_daily_process.kjb

저장소(Repository)의 Job 실행

저장소에 저장된 Job을 실행하려면 저장소 이름, Job이 위치한 디렉토리 경로, Job 이름을 지정해야 합니다.

  • /rep:<저장소 이름>: 연결할 저장소의 이름을 지정합니다.
  • /dir:<저장소 내 경로>: 저장소 내에서 Job이 위치한 디렉토리 경로를 지정합니다 (루트는 /).
  • /job:<Job 이름>: 실행할 Job의 이름을 지정합니다.
  • (필요시) /user:<사용자 이름>: 저장소 사용자 이름.
  • (필요시) /pass:<비밀번호>: 저장소 비밀번호.
./kitchen.sh /rep:MyDevelopmentRepo /dir:/Data Integration/Jobs /job:LoadSalesData

저장소 기반 Job 실행 시에는 PDI 설치 디렉토리 내의 .kitchen.properties 또는 repositories.xml 파일에 저장소 연결 정보가 올바르게 구성되어 있어야 합니다. 사용자 이름과 비밀번호는 명령줄에 노출되므로 보안에 유의해야 합니다.

4. 자주 사용되는 추가 옵션

Job 실행을 제어하거나 추가 정보를 전달하는 데 유용한 옵션들입니다.

로깅 수준 설정

/level 옵션을 사용하여 실행 중 터미널에 출력되는 로그의 상세 수준을 조절할 수 있습니다.

  • /level:<로그 레벨>: 사용 가능한 레벨은 Nothing, Basic, Detailed, Debug, Rowlevel, Error 등이 있습니다. 기본값은 Basic입니다.
./kitchen.sh /file:/path/to/job.kjb /level:Debug

파라미터 전달

Job 설정에서 정의한 파라미터에 값을 전달할 때 사용합니다. Job을 유연하게 재사용하는 데 필수적입니다.

  • /param:<파라미터 이름>=<값>: Job 내에서 정의된 파라미터 이름에 특정 값을 할당합니다. 여러 개의 파라미터를 전달하려면 이 옵션을 반복해서 사용합니다.
./kitchen.sh /file:/path/to/job.kjb /param:INPUT_DATE=2023-10-26 /param:OUTPUT_FORMAT=csv

Job 내에서는 Job Entry 설정에서 ${파라미터_이름} 형식으로 이 값들을 사용할 수 있습니다.

5. Job 실행 단계 요약

Kitchen을 사용하여 Job을 실행하는 일반적인 단계입니다.

  1. 터미널 또는 SSH 클라이언트를 열고 Linux 서버에 접속합니다.
  2. cd 명령어를 사용하여 Pentaho Data Integration 설치 디렉토리의 data-integration 하위 폴더로 이동합니다.
  3. Job의 위치와 필요한 옵션에 맞게 ./kitchen.sh 명령어를 작성하여 실행합니다.
  4. 실행이 완료될 때까지 기다리거나 백그라운드로 실행합니다 (nohup ./kitchen.sh ... &).
  5. 터미널 출력 또는 Job 설정에서 지정된 로그 파일을 확인하여 실행 결과를 검증합니다.

6. 전체 명령어 예시

예시 1: 파일 시스템 Job 실행

cd /opt/data-integration/data-integration/
./kitchen.sh /file:/home/etl/jobs/customer_data_load.kjb /level:Detailed

예시 2: 저장소 Job 실행 (사용자/비밀번호 포함)

cd /opt/data-integration/data-integration/
./kitchen.sh /rep:ProdRepo /dir:/Daily ETL /job:ProcessOrders /user:etl_user /pass:password123

예시 3: 파일 시스템 Job에 파라미터 전달 및 디버그 로깅

cd /opt/data-integration/data-integration/
./kitchen.sh \
/file:/var/lib/pentaho/jobs/etl/finance_report.kjb \
/level:Debug \
/param:REPORT_DATE=20231026 \
/param:OUTPUT_PATH=/data/reports/20231026_finance.xlsx

(명령이 길어질 경우 백슬래시(\)를 사용하여 여러 줄로 나누어 가독성을 높일 수 있습니다.)

7. 실행 결과 및 로그

kitchen.sh를 실행하면 기본적으로 터미널에 Job 실행 과정 및 결과 로그가 출력됩니다. Job 설정에서 로그 파일 출력을 구성했다면 지정된 파일에 로그가 기록됩니다. 성공/실패 여부는 터미널의 종료 코드(exit code)로 확인할 수 있습니다 (일반적으로 0은 성공, 0이 아니면 실패).

결론

kitchen.sh 스크립트는 Pentaho Job을 Linux 환경에서 자동화하고 외부 시스템(스케줄러, 셸 스크립트 등)과 연동하는 데 핵심적인 도구입니다. Job 파일 위치 지정, 로깅 레벨 설정, 파라미터 전달 등의 주요 옵션을 이해하고 활용하면 복잡한 ETL 워크플로우도 명령줄에서 효과적으로 관리할 수 있습니다.

'DEV > ETC' 카테고리의 다른 글

ETL PENTAHO SPOON KTR  (0) 2025.05.08
ETL PENTAHO SPOON CRON SCHEDULE  (1) 2025.05.08
ETL PENTAHO SPOON KJB  (0) 2025.05.08
ETL PENTAHO SPOON 설치  (0) 2025.05.08
ETL PENTAHO SPOON  (0) 2025.05.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함