DEV/ETC

ETL PENTAHO SPOON KTR

SBP 2025. 5. 8. 10:55
Pentaho Data Integration Transformation (.ktr) 파일 설명

Pentaho Data Integration Transformation (.ktr) 파일 설명

Pentaho Data Integration (PDI), 일명 Kettle에서 Transformation은 데이터의 실제 흐름과 변환 로직을 정의하는 핵심 구성 요소입니다. .ktr 확장자를 가진 파일이 바로 Transformation을 저장한 파일입니다. ETL 프로세스 중 E(추출), T(변환), L(적재) 단계에서 데이터 자체를 다루는 대부분의 작업이 Transformation 내에서 이루어집니다.

Transformation vs Job (.ktr vs .kjb)

PDI에서 Transformation과 Job은 혼동될 수 있지만, 역할이 다릅니다.

  • Transformation (.ktr):
    • 데이터 흐름 (Data Flow) 정의: 데이터가 한 단계에서 다음 단계로 어떻게 이동하고 가공되는지를 정의합니다.
    • 데이터 처리: 추출, 필터링, 정렬, 집계, 조인, 계산 등 데이터 자체를 변환하는 작업에 집중합니다.
    • 병렬 처리: 스텝 간의 데이터 처리는 기본적으로 병렬로 이루어져 성능 효율이 높습니다.
    • pan.sh 명령줄 도구로 실행됩니다.
  • Job (.kjb):
    • 작업 흐름 (Control Flow) 정의: Transformation의 실행 순서, 파일 복사, SQL 실행, 조건 분기 등 작업들 간의 제어 흐름을 정의합니다.
    • 작업 오케스트레이션: 여러 개의 Transformation이나 다른 Job을 순차적 또는 조건부로 실행하고 관리하는 역할을 합니다.
    • 기본적으로 순차적으로 실행되지만, 병렬 실행 설정도 가능합니다.
    • kitchen.sh 명령줄 도구로 실행됩니다.

간단히 말해, Transformation은 '무엇을 할지' (데이터를 어떻게 바꿀지)를 정의하고, Job은 '언제, 어떤 순서로 할지' (어떤 Transformation을 언제, 어떤 조건으로 실행할지)를 정의합니다. Job 안에 Transformation을 실행하는 Job Entry를 배치하는 것이 일반적인 사용 패턴입니다.

Transformation의 주요 구성 요소

Transformation은 주로 두 가지 핵심 요소로 구성됩니다.

1. Steps (스텝)

스텝은 Transformation 내에서 특정 데이터 처리 기능을 수행하는 가장 작은 단위입니다. 각 스텝은 독립적인 기능을 가지며, 데이터를 입력받아 처리한 후 다음 스텝으로 전달합니다. PDI는 데이터베이스 입력/출력, 파일 입출력, 데이터 변환, 조회, 유틸리티 등 수백 가지의 다양한 스텝을 제공합니다.

  • 입력 스텝 (Input Steps): 데이터를 Transformation으로 가져오는 역할을 합니다 (예: Table Input, Text File Input, Excel Input).
  • 변환 스텝 (Transformation Steps): 데이터의 형태나 내용을 변경합니다 (예: Select Values, Filter Rows, Sort Rows, Group By, Calculator, Database Lookup).
  • 출력 스텝 (Output Steps): 변환된 데이터를 최종 대상으로 내보냅니다 (예: Table Output, Text File Output, Excel Output, Insert/Update).
  • 조회 스텝 (Lookup Steps): 다른 소스에서 데이터를 조회하여 현재 데이터에 병합합니다 (예: Database Lookup, Stream Lookup).
  • ... 외에도 수많은 스텝이 존재합니다.

2. Hops (홉)

홉은 스텝과 스텝을 연결하는 화살표입니다. 홉은 데이터가 Transformation 내에서 어떤 경로를 따라 흘러가는지를 시각적으로 보여줍니다. 데이터는 항상 홉을 따라 한 스텝에서 다음 스텝으로 전달됩니다.

  • 홉의 방향은 데이터가 흐르는 방향을 나타냅니다.
  • 하나의 스텝에서 여러 개의 홉이 나갈 수 있습니다. 이는 데이터를 여러 방향으로 분기하거나 복제할 때 사용됩니다.
  • Transformation의 홉은 Job의 홉처럼 성공/실패에 따라 분기하는 조건부 실행이 아니라, 데이터가 흘러가는 물리적인 경로를 의미합니다. (물론 'Filter Rows' 스텝처럼 데이터 내용에 따라 다른 홉으로 데이터를 분기하는 스텝은 있습니다.)

3. 캔버스 (Canvas)

스텝과 홉을 드래그 앤 드롭으로 배치하고 연결하는 시각적인 작업 영역입니다. Spoon GUI에서 .ktr 파일을 열면 이 캔버스가 나타납니다.

Transformation의 데이터 처리 방식

Transformation이 실행될 때, 데이터는 입력 스텝에서 읽혀져 행(row) 단위로 처리됩니다. 각 행은 홉을 따라 다음 스텝으로 전달되며, 해당 스텝에서 정의된 처리를 거칩니다. PDI 엔진은 각 스텝을 별도의 스레드에서 실행하여 스텝 간의 데이터 처리를 병렬화할 수 있으며, 이를 통해 대용량 데이터 처리 성능을 높입니다. 데이터는 스텝 간에 버퍼를 통해 전달됩니다.

Transformation 생성 및 편집

Transformation은 PDI의 GUI 도구인 Spoon에서 생성하고 편집합니다. Spoon의 'Design' 탭에서 원하는 스텝을 캔버스로 드래그하고, 스텝들을 홉으로 연결한 후, 각 스텝을 더블 클릭하여 상세 속성을 설정하는 방식으로 디자인합니다.

Transformation 실행

디자인된 Transformation은 다음과 같은 방법으로 실행할 수 있습니다.

  • Spoon GUI: 개발 및 테스트 단계에서 Spoon 내에서 직접 실행합니다. 'Execution results' 탭에서 실행 결과와 로그를 확인할 수 있습니다.
  • Pan 명령줄 도구: pan.sh (Linux/Unix) 스크립트를 사용하여 명령줄 환경에서 실행합니다. 자동화 및 스케줄링에 사용됩니다.
  • Job 내에서: Job (.kjb) 파일에 'Transformation' Job Entry를 추가하고, 해당 Job Entry에서 실행할 .ktr 파일을 지정하여 Job의 일부로 실행합니다.

결론

.ktr 파일은 Pentaho Data Integration에서 데이터 추출, 변환, 적재의 핵심 로직인 '데이터 변환' 과정을 정의하는 설계 파일입니다. 다양한 스텝들을 으로 연결하여 데이터의 흐름과 가공 방식을 시각적으로 디자인하며, PDI 엔진은 이를 기반으로 데이터 파이프라인을 실행합니다. .ktr 파일은 재사용 및 자동화가 용이하며, PDI를 통해 복잡한 데이터 처리 요구사항을 구현하는 데 필수적인 요소입니다.