Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

배치 입력의 스냅샷과 증분 계산

배치 입력은 현재 데이터 전체를 읽는 스냅샷 모드 또는 마지막 빌드 뒤 추가된 데이터만 읽는 증분 모드로 구성할 수 있습니다. 입력 모드와 변환 로직 및 출력 쓰기의 의미가 맞아야 올바른 결과를 유지합니다.

스냅샷 계산

스냅샷은 전체 입력에 변환을 적용하고 매 빌드의 최신 결과로 출력을 완전히 대체합니다.

다음 경우에 적합합니다.

  • 입력이 SNAPSHOT으로 대체되어 추가분만 읽을 수 없습니다.
  • 한 실행에서 출력 전체의 값이 바뀔 수 있어 APPEND로만 결과를 유지할 수 없습니다.
  • 입력이 작아 전체 계산의 부담이 낮습니다.

증분 계산

증분은 선택한 입력에 마지막 빌드 이후 추가된 데이터를 처리합니다. 큰 입력에 새 데이터가 자주 추가될 때 연산량과 실행 시간을 줄일 수 있습니다.

입력이 APPEND 또는 기존 파일을 수정하지 않는 추가 전용 UPDATE로 갱신되어야 합니다. 스냅샷 입력을 Incremental로 표시해도 추가 전용 입력으로 바뀌지는 않습니다.

Pipeline Builder는 과거 출력을 직접 읽는 previous 모드를 제공하지 않습니다. 일부 출력 쓰기 모드로 공통 사용 사례를 구현할 수 있지만, 임의의 과거 출력 상태를 읽어 계산하는 코드 변환과 같지는 않습니다.

조인, Union과 집계

연산조건
증분 입력과 스냅샷 입력 조인증분을 왼쪽, 스냅샷을 오른쪽에 둡니다.
증분 입력끼리 조인지원합니다. 처리 범위의 의미를 확인합니다.
오른쪽 스냅샷 입력의 새 트랜잭션하위 조인은 계속 증분 실행합니다. 이 입력 변경으로 전체 재생을 자동 강제할 수 없습니다.
Union모두 스냅샷이거나 모두 증분이어야 합니다.
윈도 함수, 집계와 피벗현재 처리 트랜잭션의 데이터에만 적용합니다. 과거 출력 전체를 자동으로 다시 집계하지 않습니다.
로직 변경 후 과거 데이터 적용배포 시 전체 입력을 재생합니다. 부분 배치 재생은 지원하지 않습니다.

예를 들어 참조용 스냅샷 테이블의 값이 바뀌었다고 이미 처리한 과거 출력까지 자동 수정되는 것은 아닙니다. 과거 결과를 새 로직이나 참조 상태로 다시 계산해야 하는지 별도로 결정합니다.

증분 실행 강제

Build settings > Advanced configuration > Require incremental execution을 켜면 증분으로 구성한 작업이 증분 실행을 할 수 없을 때 자동으로 실패합니다. 기본적으로는 비활성 상태이며, 의도하지 않은 입력 스냅샷이나 출력 스키마 변경에 따른 전체 갱신을 막는 데 사용할 수 있습니다.

이 설정은 모든 증분 출력에 적용하고, 파이프라인에 증분 입력 또는 출력이 하나 이상 있어야 활성화할 수 있습니다. 상태 단절을 요구하는 변경을 명시적으로 확인한 뒤 스냅샷으로 실행하는 예외는 별도로 다룹니다.

증분 항공편 필터는 입력을 Incremental로 지정하고 전체 재생 및 강제 설정을 선택하는 예제입니다. 장기간 파일과 트랜잭션이 누적되는 문제는 증분 성능 유지에서 설명합니다.