Iceberg 컴팩션 관련 설정

Iceberg 컴팩션 관련 설정

Iceberg 테이블의 백그라운드 컴팩션이 커밋 배치 크기, 데이터 정리 시점, 지연 편향, 출력 데이터 파일의 최대 크기·행 수를 어떻게 다룰지 제어하는 설정들이에요. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.

출처: 문서

본문

이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.

iceberg_compaction_commit_batch_size

백그라운드 Iceberg 컴팩션이 새 스냅샷으로 게시하기 전에 누적하는 병합된 데이터 파일의 수예요. 컴팩션 결과는 컴팩트할 후보가 더 이상 없으면 어쨌든 게시되므로, 이 설정은 컴팩션이 새 작업을 계속 찾는 동안 이미 병합된 파일이 얼마나 오래 미게시 상태로 남는지만 제한해요. 0은 컴팩션이 후보를 다 쓸 때만 게시하는 옛 동작을 복원해요. 테이블이 계속 새 데이터 파일을 받는 한 그 상태는 결코 도달하지 못하므로, 모든 병합 출력은 오브젝트 스토리지에 쓰이고 어떤 스냅샷에도 참조되지 않아요.

iceberg_compaction_data_cleanup

데이터가 삭제되는 시점이에요.

iceberg_compaction_delay_bias

두 백그라운드 컴팩션 작업 사이의 최소 지연 시간이에요.

iceberg_compaction_max_bytes_in_data_file

컴팩션으로 생성되는 iceberg parquet 데이터 파일의 최대 바이트예요. 기본값은 Iceberg 테이블 속성 write.target-file-size-bytes(512 MiB)의 문서화된 기본값을 반영해요. https://iceberg.apache.org/docs/1.5.2/configuration/ 참조. iceberg_data_file_size_lower_threshold_compaction보다 위로 유지해야 해요. 그렇지 않으면 모든 출력 파일이 하한 임계값보다 작아져 다시 컴팩션 대상으로 선택되거든요.

iceberg_compaction_max_rows_in_data_file

컴팩션으로 생성되는 iceberg parquet 데이터 파일의 최대 행 수예요. 기본값은 최대값이므로, 출력 파일에 얼마나 많은 데이터가 들어가는지는 iceberg_compaction_max_bytes_in_data_file 크기 제한만으로 결정돼요. Iceberg가 write.target-file-size-bytes의 행 수 대응물을 갖지 않는 것과 같은 방식이에요.

더 알아보기 (Learn more)