본문 바로가기

Hadoop/Hudi

[Apache Hudi] 3-1. Components - Timeline

Timeline

Hudi에서 발생한 모든 오퍼레이션을 저장하는 공간으로 basepath/.hoodie에 저장된다.

timeline

데이터가 인입되게 되면 타임라인에 어떤 작업이 수행되어는지를 모두 기록하고, base file에 실제 데이터를 저장하게 된다. timeline의 데이터는 모두 순차적으로 저장이 되게 된다.

.hoodie 디렉토리 하위에 하나의 파일 형태로 저장되는것은 아니고, Action Type별로 파일이 생성되고 관리된다.

Timeline Action Type

  • COMMITS: 레코드들을 테이블에 Atomic 하게 쓰는 것을 의미한다.
  • CLEANS: 오래된 버전의 파일을 제거하는 백그라운드 작업을 나타낸다.
  • DELTA_COMMIT: 테이블 타입이 Merge On Write일 경우 delta log 파일에 변경데이터를 저장하게 되는데, 이때 데이터가 delta log에 쓰여지는것을 의미한다.
  • COMPACTION: 생성된 delta log를 base file에 merge 하는 백그라운드 작업
  • ROLLBACK: 커밋/델타 커밋이 실패하고 롤백되어 이러한 쓰기 중에 생성된 부분 파일이 제거되었음을 나타낸다.
  • SAVEPOINT: 특정 파일 그룹을 "saved"로 표시하여 클리너가 해당 파일 그룹을 삭제하지 않도록 하는 작업. 장애가 발생하여 데이터를 복구해야 할때 타임라인의 특정 지점으로 복원할수 있도록 함.

Timeline State

  • REQUESTED: 작업이 스케줄에 추가되었지만 아직 실행되지 않은 상태
  • INFLIGHT: 작업이 현재 수행되고 있음
  • COMPLETED: 작업 완료

파일 구조

수행된 시간 + 액션 타입 조합으로 파일이 생성된다.

 

 

'Hadoop > Hudi' 카테고리의 다른 글

[Apache Hudi] 3-2. Components - Table Type & Query Type  (0) 2022.01.23
[Apache Hudi] 2. 파일 구조  (0) 2022.01.20
[Apache hudi] 1. hudi란 무엇일까?  (0) 2022.01.19