View a markdown version of this page

Iceberg 메타데이터 관리 - Amazon SageMaker AI

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Iceberg 메타데이터 관리

Iceberg 테이블 형식으로 특성 그룹을 생성하면 Amazon SageMaker 특성 저장소는 기본 구성 값을 사용하여 사용자를 대신하여 기본 Iceberg 테이블을 생성하고 관리합니다. 특성 그룹 생성 시 Iceberg 테이블 속성을 구성하고, 기존 특성 그룹의 속성을 업데이트하고, 테이블에 현재 설정된 속성을 볼 수 있습니다. 이러한 설정을 통해 스냅샷 보존, 메타데이터 파일 관리, 쓰기 동작과 같은 구성 파라미터를 제어하여 오프라인 저장소 테이블의 전체 크기와 성능을 관리할 수 있습니다.

Iceberg 테이블 속성의 하위 집합만 특성 저장소와의 호환성이 검증되었습니다. 이 지원되는 세트 외부에서 속성을 구성한다고 해서 올바른 동작이 보장되는 것은 아닙니다. 지원되는 속성의 전체 목록은 섹션을 참조하세요허용된 Iceberg 속성.

사전 조건: 특성 그룹에 Iceberg 테이블 형식을 사용하는 오프라인 저장소가 있어야 합니다.

중요

허용되지 않는 Iceberg 속성이 변경되면 특성 저장소는 지속적인 호환성을 보장할 수 없으며 오프라인 저장소에 쓰지 못할 수 있습니다.

IcebergProperties 유형

IcebergProperties 유형은 Iceberg 속성 구성에 대해 검증된 래퍼를 제공하여 모든 키가 허용된 세트에 속하는지 확인하고 중복 항목을 방지합니다.

class IcebergProperties(Base): """Configuration for Iceberg table properties in a Feature Group offline store.""" properties: Optional[Dict[str, str]] = None

속성 검증

유효하지 않고 중복된 키는 생성 또는 업데이트 함수에 전달될 때 오류가 발생합니다. 선택적으로 validate_property_keys() 메서드를 사용하여 키를 검증할 수 있습니다. 이는 기존 IcebergProperties 객체에서 속성을 추가하거나 제거할 때 유용합니다.

iceberg_properties = IcebergProperties( # Validates on creation properties={ "write.target-file-size-bytes": "268435456", "write.delete.mode": "merge-on-read", } ) # Add non-allowed property iceberg_properties.properties.update({"write.delete.isolation-level": "Snapshot"}) # Validate again — throws error because of non-allowed property iceberg_properties.validate_property_keys()

Iceberg 속성을 사용하여 특성 그룹 생성

FeatureGroupManager.create 함수는 유형의 iceberg_properties 파라미터를 허용합니다IcebergProperties. 특성 그룹을 생성하고 기본 AWS Glue 테이블에서 Iceberg 속성을 업데이트하기 전에 생성이 완료될 때까지 기다립니다.

또는를 생성하고 createFeatureGroup호출한 다음 특성 그룹 객체를 FeatureGroupManager 클래스에 전달하고를 호출update하여 특성 그룹이 생성을 완료하는 동안 차단되지 않도록 할 수 있습니다.

fg = FeatureGroupManager.create( # ...other parameters... offline_store_config=OfflineStoreConfig( s3_storage_config=S3StorageConfig(s3_uri="s3://my-bucket/features/"), table_format="Iceberg", # Must use Iceberg table format ), iceberg_properties=IcebergProperties( properties={ "write.target-file-size-bytes": "536870912", "history.expire.min-snapshots-to-keep": "3", } ), )

기존 특성 그룹의 Iceberg 속성 업데이트

update 함수는 유형의 iceberg_properties 파라미터를 허용합니다IcebergProperties. 이미 생성된 특성 그룹을 가져와 오프라인 저장소 AWS Glue Data Catalog 의를 검색하고 지정된 Iceberg 속성을 설정합니다.

fg = FeatureGroupManager.get(feature_group_name="my-feature-group") fg.update( iceberg_properties=IcebergProperties( properties={ "write.target-file-size-bytes": "268435456", "write.delete.mode": "merge-on-read", } ), )

특성 그룹의 Iceberg 속성 보기

FeatureGroupManager.get 함수는 include_iceberg_properties 파라미터를 수락합니다. 로 설정하면 수동으로 설정되고 허용된 목록의 일부인 Iceberg 속성을 True검색하여 반환된 객체의 iceberg_properties 필드에 추가합니다.

이렇게 하면 허용된 목록의 일부인 설정된 속성만 반환됩니다. 모든 AWS Glue 테이블 속성을 가져오려면 AWS Glue API를 직접 사용합니다. 허용된 Iceberg 속성이 표시되지 않으면 명시적으로 설정되지 않았으며 기본값을 사용합니다.

fg = FeatureGroupManager.get( feature_group_name="my-feature-group", include_iceberg_properties=True, ) print(fg.iceberg_properties.properties) # e.g. {"write.target-file-size-bytes": "536870912"}

필수 권한

AmazonSageMakerFeatureStoreAccessAmazonSageMakerFullAccess 관리형 정책이 모두 사용 중인 IAM 역할에 연결되어 있는지 확인합니다. 액세스 패턴을 기반으로 정책을 관리합니다.

허용된 Iceberg 속성

다음 표에는 특성 저장소와 함께 사용하도록 검증된 Iceberg 테이블 속성이 나열되어 있습니다. 이러한 속성에 대한 자세한 내용은 Apache Iceberg 설명서의 테이블 구성을 참조하세요.

허용된 Iceberg 테이블 속성
속성 기본값 설명
write.metadata.delete-after-commit.enabled false 각 테이블 커밋 후 가장 오래된 추적 버전 메타데이터 파일을 삭제할지 여부를 제어합니다.
write.metadata.previous-versions-max 100 추적할 이전 버전 메타데이터 파일의 최대 수입니다.
history.expire.max-snapshot-age-ms 432000000 (5일) 스냅샷을 만료시키는 동안 테이블과 모든 브랜치에 유지할 스냅샷의 기본 최대 수명입니다.
history.expire.min-snapshots-to-keep 1 스냅샷을 만료시키는 동안 테이블과 모든 브랜치에 유지할 기본 최소 스냅샷 수입니다.
history.expire.max-ref-age-ms Long.MAX_VALUE (영구) main 브랜치를 제외한 스냅샷 참조의 경우 스냅샷 만료 시 유지할 스냅샷 참조의 기본 최대 수명입니다. main 브랜치는 만료되지 않습니다.
write.target-file-size-bytes 536870912 (512MB) 이 바이트 수를 대상으로 생성된 파일의 크기를 제어합니다.
write.delete.target-file-size-bytes 67108864 (64MB) 이 바이트 수를 대상으로 생성된 삭제 파일의 크기를 제어합니다.
write.delete.mode copy-on-write 삭제 명령에 사용되는 모드: copy-on-write 또는 merge-on-read (v2 이상).
write.update.mode copy-on-write 업데이트 명령에 사용되는 모드: copy-on-write 또는 merge-on-read (v2 이상).
write.delete.granularity partition 생성된 삭제 파일의 세부 수준을 제어합니다file. partition 또는 .
write.parquet.row-group-size-bytes 134217728 (128MB) Parquet 행 그룹 크기입니다.
read.split.target-size 134217728 (128MB) 데이터 입력 분할을 결합할 때의 대상 크기입니다.
read.split.metadata-target-size 33554432 (32MB) 메타데이터 입력 분할을 결합할 때의 대상 크기입니다.
read.split.open-file-cost 4194304 (4MB) 분할을 결합할 때 최소 가중치로 사용되는 파일을 여는 예상 비용입니다.