유지 관리 작업에 대한 고려 사항 및 제한 사항
유지 관리 작업에 대한 고려 사항 및 제한 사항 (Considerations and limitations)
Amazon S3는 S3 테이블이나 테이블 버킷의 성능을 높이기 위한 유지 관리 작업을 제공해요. 그 옵션들이 파일 압축(compaction), 스냅샷 관리, 참조되지 않은 파일 제거예요. 아래는 이 관리 옵션들에 대한 제한 사항과 고려 사항이에요.
출처: 문서
본문
압축(Compaction) 관련 고려 사항
압축에 적용되는 고려 사항은 다음과 같아요. 압축에 대한 자세한 내용은 "Maintenance for tables" 문서를 참고하세요.
- 압축은 Apache Parquet, Avro, ORC 파일 유형을 지원해요.
- 압축은 기본적으로 새 파일을 Apache Parquet 형식으로 작성해요. 대신 파일을 Avro나 ORC 형식으로 압축하려면 테이블 속성
write.format.default를avro또는orc로 설정하세요. - 압축은
Fixed데이터 유형을 지원하지 않아요. - 압축은
brotli,lz4압축 유형을 지원하지 않아요. - 압축은 자동화된 일정에 따라 수행돼요. 압축과 관련된 비용이 부과되지 않도록 하려면
PutTableMaintenanceConfigurationAPI 작업을 사용해 테이블에 대해 압축을 수동으로 끌 수 있어요.
참고: Apache Iceberg는 낙관적 동시성 모델과 충돌 감지를 사용해 쓰기 트랜잭션을 중재해요. 낙관적 동시성으로 인해 사용자 트랜잭션과 압축 트랜잭션이 충돌해 트랜잭션이 실패할 수 있어요. 충돌이 발생하면 압축 작업은 실패 시 재시도해요. 파이프라인에도 재시도 로직을 사용해 충돌하는 작업으로 실패하는 트랜잭션을 극복하는 것을 권장해요.
스냅샷 관리 관련 고려 사항
스냅샷 관리에 적용되는 고려 사항은 다음과 같아요. 스냅샷 관리에 대한 자세한 내용은 "Maintenance for tables" 문서를 참고하세요.
- 스냅샷은 두 기준이 모두 충족될 때만 보존돼요. 유지할 최소 스냅샷 수와 지정한 보존 기간이 그것이에요.
- 스냅샷 관리는 Apache Iceberg에서 만료된 스냅샷 메타데이터를 삭제해 만료된 스냅샷에 대한 타임트래블(time travel) 쿼리를 방지하고, 선택적으로 관련 데이터 파일도 삭제해요.
- 스냅샷 관리는
metadata.json파일이나ALTER TABLE SET TBLPROPERTIESSQL 명령으로 Iceberg 테이블 속성으로 구성하는 보존 값을 지원하지 않아요. 여기에는 브랜치 또는 태그 기반 보존도 포함돼요. 브랜치나 태그 기반 보존 정책을 구성하거나,PutTableMaintenanceConfigurationAPI로 구성한 값보다 긴 보존 정책을metadata.json파일에 구성하면 스냅샷 관리가 비활성화돼요. 이런 경우 S3는 스냅샷을 만료·제거하지 않으므로, 스토리지 비용을 피하려면 스냅샷을 수동으로 삭제하거나 Iceberg 테이블에서 해당 속성을 제거해야 해요.
참조되지 않은 파일 제거 관련 고려 사항
참조되지 않은 파일 제거에 적용되는 고려 사항은 다음과 같아요. 자세한 내용은 "Maintenance for table buckets" 문서를 참고하세요.
- 참조되지 않은 파일 제거는 Iceberg 메타데이터가 더 이상 참조하지 않는 생성 시간이 보존 기간보다 이른 데이터·메타데이터 파일을 삭제해요.
S3 테이블 및 테이블 버킷 유지 관리 작업의 한도와 관련 API
| 유지 관리 작업 | 속성 | 테이블 버킷 수준 구성 가능? | 테이블 수준 구성 가능? | 기본값 | 최솟값 | 관련 Iceberg 유지 관리 루틴 | 제어하는 S3 Tables API |
|---|---|---|---|---|---|---|---|
| 압축 | targetFileSizeMB | 아니요 | 예 | 512MB | 64MB | rewriteDataFiles | PutTableMaintenanceConfiguration |
| 스냅샷 관리 | minimumSnapshots | 아니요 | 예 | 1 | 1 | ExpireSnapshots retainLast | PutTableMaintenanceConfiguration |
| 스냅샷 관리 | maximumSnapshotAge | 아니요 | 예 | 120시간 | 1시간 | ExpireSnapshots expireOlderThan | PutTableMaintenanceConfiguration |
| 참조되지 않은 파일 제거 | unreferencedDays | 예 | 아니요 | 3일 | 1일 | deleteOrphanFiles | PutTableBucketMaintenanceConfiguration |
| 참조되지 않은 파일 제거 | nonCurrentDays | 예 | 아니요 | 10일 | 1일 | 해당 없음 | PutTableBucketMaintenanceConfiguration |
참고: S3 Tables는 Parquet의 row-group 기본 크기인 128MB를 적용해요.
더 알아보기 (Learn more)
- 테이블의 레코드 만료 (Record expiration for tables)
- S3 Tables Intelligent-Tiering