본문으로 건너뛰기
버전: v0.1.0

버전 관리

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 버전

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

  • 코드 내용을 수정하면 새 버전이 자동으로 생성됩니다.
  • 버전 목록에서 각 버전의 수정 시각을 확인할 수 있습니다.
  • 두 버전을 선택하여 변경 내역을 비교할 수 있습니다.

Pipeline 버전

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

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

Knowledge 버전

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

버전 목록 조회

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

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

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

특정 버전 확인

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

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

데이터셋의 경우, 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가 생성되지 않습니다.

다음 단계