S3 Tables 복제 작동 방식 - Amazon Simple Storage Service

S3 Tables 복제 작동 방식

S3 Tables 복제는 리전 및 AWS 계정 간에 Apache Iceberg 테이블의 읽기 전용 복제본을 생성합니다. 복제본 테이블은 S3 Tables 서비스에서 자동으로 유지 관리되며 소스 테이블의 전체 데이터, 메타데이터 및 스냅샷 기록을 포함하므로 분석 및 시간 이동 작업에 Iceberg 호환 엔진을 사용하여 쿼리할 수 있습니다.

테이블에 대한 복제를 구성할 때 S3 Tables는 다음과 같습니다.

  • 원본 테이블과 동일한 이름과 네임스페이스를 사용하여 각 대상 테이블 버킷에 읽기 전용 복제본 테이블을 생성합니다.

  • 복제본을 소스 테이블의 최신 상태로 채웁니다.

  • 소스 테이블에서 새 업데이트 모니터링

  • 일관성을 유지하기 위해 원본과 동일한 순서로 복제본에 대한 모든 업데이트를 커밋합니다.

자세한 내용은 다음 섹션을 참조하세요.

복제 가능한 구성 요소

다음 테이블 구성 요소가 복제됩니다.

  • 테이블 스냅샷 - 압축된 스냅샷을 포함한 모든 스냅샷은 시간순으로 복제되어 원본 테이블의 상위-하위 관계 및 시퀀스 번호를 유지합니다. 이렇게 하면 복제본 테이블이 소스 테이블과 동일한 시간 이동 기능을 제공합니다.

  • 테이블 데이터 - 테이블 스냅샷에서 참조하는 모든 데이터 파일이 대상 리전에 복제됩니다. 여기에는 다음이 포함됩니다.

    • 메타데이터 파일 - 테이블 metadata.json 파일, 매니페스트, 매니페스트 목록, 파티션 통계 및 테이블 통계.

    • 파일 삭제 - 모든 삭제 파일은 복제본 테이블의 데이터 정확도를 유지하기 위해 복제됩니다.

    • 데이터 파일 - 매니페스트에서 참조하는 모든 데이터 파일이 복제됩니다.

  • 테이블 메타데이터 - 스키마 정보(현재 및 과거), 파티션 사양, 정렬 순서, 테이블 속성을 포함한 전체 메타데이터 복제입니다.

    • 스키마 정보 - 현재 스키마 및 과거 스키마 버전을 포함하여 모든 테이블 스키마가 복제됩니다. 이렇게 하면 복제본 테이블에 대한 쿼리가 올바른 열 정의, 데이터 유형 및 필드 매핑을 사용할 수 있습니다. 복제 프로세스는 스키마 진화 기록을 유지 관리하므로 시간 이동 쿼리가 복제본 테이블에서 올바르게 작동할 수 있습니다.

    • 파티션 사양 - 현재 및 과거 파티션 사양이 복제되어 복제본 테이블이 소스 테이블과 동일한 파티셔닝 전략을 유지하도록 합니다.

    • 정렬 순서 - 쿼리 성능 최적화를 유지하기 위해 테이블 정렬 순서가 복제됩니다.

데이터 복제 방법

복제는 소스 테이블과 복제본 테이블 간의 Apache Iceberg 테이블 메타데이터를 비교하여 복제본 테이블의 유효한 상태를 결정합니다. 복제는 세 가지 범주의 메타데이터를 처리하여 복제본 테이블을 업데이트합니다.

테이블 메타데이터의 경우

버전이 지정된 메타데이터 필드의 경우 복제는 소스 테이블의 값을 다음 필드에 대한 복제본 테이블의 배열로 병합합니다.

  • snapshots - 소스 테이블의 모든 스냅샷을 snapshot-id별로 복제본 테이블의 스냅샷 배열에 병합합니다.

  • snapshot-log - 원본 테이블의 스냅샷 로그를 타임스탬프 및 스냅샷 ID별로 정렬된 복제본 테이블의 스냅샷 로그 배열로 병합합니다.

  • sort-orders - 소스 테이블의 정렬 순서 정의를 order-id별로 복제본 테이블의 정렬 순서 배열에 병합합니다.

  • partition-specs - 소스 테이블의 파티션 사양을 spec-id별로 복제본 테이블의 파티션 사양 배열에 병합합니다.

테이블 구성의 경우

테이블 구성을 나타내는 필드의 경우 복제는 소스 테이블에서 직접 값을 복사합니다.

  • properties

  • partition-statistics

  • statistics

현재 테이블 상태도 소스 테이블에서 전송됩니다.

  • current-snapshot-id

  • current-schema-id

  • last-column-id

  • last-partition-id

  • last-sequence-number

  • default-sort-order-id

  • next-row-id(Iceberg V3)

  • encryption-keys(Iceberg V3)

복제본별 상태

다음 필드는 병합된 데이터에서 계산되고 복제본 테이블에 대해 업데이트됩니다.

  • location은 복제 중에 복제본 테이블 버킷의 올바른 파일 위치를 가리키도록 업데이트되어 모든 파일 참조가 대상 환경에서 유효한지 확인합니다.

  • metadata-log에는 모든 대상 메타데이터 파일 이름이 포함되며 복제에 성공할 때마다 현재 메타데이터 파일 이름으로 업데이트됩니다.

  • 복제본 테이블 위치를 가리키도록 모든 파일 경로가 수정됩니다.

스냅샷 복제

S3 Tables 복제는 소스 테이블과 동일한 커밋 순서로 모든 테이블 스냅샷을 복제하여 리전 간에 전체 스냅샷 기록을 유지합니다. 소스 테이블의 상위-하위 관계는 복제본 테이블에 보존됩니다.

스냅샷 보관

복제된 테이블에 대해 소스의 보존 기간과 다른 사용자 지정 스냅샷 보존 기간을 구성할 수 있습니다. 즉, 스냅샷이 만료되어 소스 테이블에서 더 이상 사용할 수 없는 경우에도 복제본에 보존할 수 있습니다.

예를 들어 소스 테이블의 스냅샷 보존 기간이 30일이지만 복제본 테이블은 90일 보존 기간으로 구성된 경우, 복제본은 소스 테이블에서 더 이상 사용할 수 없는 이전 2개월의 스냅샷을 유지합니다.

소스 테이블에서 수동으로 만료된 스냅샷도 복제본 테이블에 보존됩니다. 예를 들어 Spark 프로시저를 사용하여 소스 테이블에서 2월부터 스냅샷을 만료한 경우에도 복제본 테이블의 스냅샷으로 시간을 보낼 수 있습니다.

고려 사항 및 제한

복제된 테이블에는 다음 고려 사항이 적용됩니다.

  • S3 Tables는 Iceberg V2 및 V3 테이블을 모두 복제합니다. 그러나 업그레이드된 테이블(V2 → V3)의 복제는 지원되지 않습니다.

  • 500MB보다 큰 메타데이터 파일은 지원되지 않습니다.

  • 테이블 업데이트는 일반적으로 몇 분 내에 복제되지만 복제가 채우기를 시작하는 경우와 같이 복제할 테이블 업데이트의 크기에 따라 복제 시간이 더 오래 걸릴 수 있습니다.

  • 태그 또는 브랜치가 있는 테이블은 지원되지 않습니다.

  • Amazon S3 Metadata 테이블 또는 기타 AWS 생성 시스템 테이블에는 복제가 지원되지 않습니다.

  • 압축된 스냅샷을 포함한 모든 테이블 스냅샷은 소스 테이블에서 복제됩니다. 따라서 복제본 테이블에서는 압축이 지원되지 않습니다.