본문으로 건너뛰기
버전: Next

버전 관리

D.Hub의 모든 리소스(Dataset, Code, Pipeline, Knowledge)는 변경 이력이 버전별로 관리됩니다. 이 문서에서는 D.Hub의 버전 관리 체계와 활용 방법을 설명합니다.

버전 관리 개요

D.Hub은 두 가지 계층의 버전 관리를 제공합니다.

Manifest 기반 버전 관리

모든 리소스의 메타데이터와 구성 정보는 Manifest로 관리됩니다. Manifest는 S3 호환 오브젝트 스토리지에 저장되며, 오브젝트 버저닝(Object Versioning)을 통해 변경 이력이 자동으로 기록됩니다.

  • 리소스를 생성하면 최초 Manifest가 저장됩니다.
  • 메타데이터(이름, 태그, 설명 등)를 수정하면 새 버전의 Manifest가 생성됩니다.
  • 이전 버전의 Manifest는 삭제되지 않고 유지됩니다.

Delta Lake 테이블 버전 관리

데이터셋의 실제 데이터는 Delta Lake 테이블로 관리됩니다. Delta Lake는 자체적인 트랜잭션 로그를 통해 데이터 버전을 추적합니다.

  • CSV 업로드, 데이터 추가, 스키마 변경 시 새 버전이 생성됩니다.
  • 각 버전에는 고유한 버전 번호와 타임스탬프가 부여됩니다.
  • 타임 트래블(Time Travel): 특정 시점이나 버전 번호로 과거 데이터를 조회할 수 있습니다.
정보

Manifest 버전과 Delta Lake 테이블 버전은 독립적으로 관리됩니다. Manifest는 리소스의 메타데이터 변경을, Delta Lake는 실제 데이터 변경을 추적합니다.

리소스별 버전 관리

Dataset 버전

데이터셋은 두 가지 수준의 버전이 존재합니다.

버전 유형관리 대상추적 방식
Manifest 버전이름, 스키마, 태그, 설명 등 메타데이터S3 Object Versioning
Table 버전실제 테이블 데이터 (행/열)Delta Lake 트랜잭션 로그

파이프라인에서 데이터셋을 입력으로 참조할 때, 특정 버전 번호를 지정하여 정확한 시점의 데이터를 사용할 수 있습니다.

Code 버전

코드 아티팩트는 오브젝트 스토리지에 버전별로 저장됩니다.

  • 코드 내용을 수정하면 새 버전이 자동으로 생성됩니다.
  • 버전 목록에서 각 버전의 수정 시각을 확인할 수 있습니다.
  • 두 버전을 선택하면 Monaco DiffEditor에서 변경 내역을 비교할 수 있습니다 (Side-by-side / Unified 모드).
  • 특정 버전의 코드 파일을 다운로드할 수 있습니다.

Pipeline 버전

파이프라인의 구성 정보(Step 목록, 의존 관계, 옵션 등)는 Manifest로 관리됩니다.

  • Step 추가/제거, 의존 관계 변경 시 새 버전이 생성됩니다.
  • 파이프라인 실행 시 해당 시점의 구성이 사용됩니다.

Knowledge 버전

지식(Knowledge) 리소스 역시 Manifest 기반으로 버전이 관리됩니다. 문서 추가, 설정 변경 등의 작업이 버전으로 기록됩니다.

버전 목록 조회

리소스의 상세 화면에서 Versions 탭을 클릭하면 해당 리소스의 전체 버전 목록을 확인할 수 있습니다.

각 버전 항목에는 다음 정보가 표시됩니다.

항목설명
Version ID버전 고유 식별자
Latest최신 버전 여부
Last Modified해당 버전이 생성된 시각

특정 버전 확인

버전 목록에서 항목을 클릭하면 해당 시점의 리소스 상태를 확인할 수 있습니다.

  • Dataset: 해당 버전의 스키마 및 데이터 프리뷰
  • Code: 해당 버전의 코드 내용
  • Pipeline: 해당 버전의 Step 구성

버전 복원 (Restore)

이전 버전을 현재 버전으로 복원할 수 있습니다. 버전 목록에서 복원할 버전을 선택한 후 Restore 버튼을 클릭하면 확인 모달이 표시됩니다. 확인 후 해당 버전의 상태가 최신 버전으로 적용됩니다.

데이터셋의 경우, Delta Lake 테이블 버전 목록에서 특정 버전을 선택하여 해당 시점의 데이터를 프리뷰할 수 있습니다. 이를 통해 데이터 변경 이력을 추적할 수 있습니다.

Checkpoint

Checkpoint는 파이프라인의 배치(Batch) 처리 중 각 Step의 실행 상태를 기록하는 메커니즘입니다.

Checkpoint 구조

각 Checkpoint에는 다음 정보가 포함됩니다.

필드설명
State실행 상태 (running, completed, failed 등)
Offsets데이터 처리 오프셋 (재시작 시 이어서 처리)
Start Time실행 시작 시각
End Time실행 종료 시각
Comment추가 메모

Checkpoint 활용

Checkpoint는 다음과 같은 상황에서 유용합니다.

  • 장애 복구: 파이프라인 실행 중 오류가 발생했을 때, 마지막 Checkpoint부터 재시작할 수 있습니다.
  • 진행 상황 추적: 각 Step의 처리 오프셋을 통해 진행률을 확인합니다.
  • 실행 이력 분석: 과거 배치 실행의 시작/종료 시각, 처리량 등을 분석합니다.
경고

Checkpoint는 배치 처리 전용 기능입니다. 단일 실행(Ad-hoc) 파이프라인에서는 Checkpoint가 생성되지 않습니다.

다음 단계