View a markdown version of this page

Gestione dei metadati Iceberg - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione dei metadati Iceberg

Quando crei un gruppo di funzionalità con il formato tabella Iceberg, Amazon SageMaker Feature Store crea e gestisce la tabella Iceberg sottostante per tuo conto utilizzando valori di configurazione predefiniti. Puoi configurare le proprietà della tabella Iceberg al momento della creazione del gruppo di funzionalità, aggiornare le proprietà su un gruppo di funzionalità esistente e visualizzare le proprietà attualmente impostate sulla tabella. Queste impostazioni consentono di controllare i parametri di configurazione come la conservazione delle istantanee, la gestione dei file di metadati e il comportamento di scrittura per gestire le dimensioni e le prestazioni complessive della tabella di archiviazione offline.

Solo un sottoinsieme delle proprietà della tabella Iceberg è stato convalidato per la compatibilità con Feature Store. La configurazione di proprietà al di fuori di questo set supportato non garantisce un comportamento corretto. Per l'elenco completo delle proprietà supportate, vedereProprietà Iceberg consentite.

Prerequisito: il tuo feature group deve disporre di un negozio offline che utilizza il formato tabella Iceberg.

Importante

Se le proprietà Iceberg non consentite vengono modificate, Feature Store non può garantire la compatibilità continua e può comportare l'impossibilità di scrivere nel negozio offline.

IcebergProperties digitare

Il IcebergProperties tipo fornisce un wrapper convalidato per le configurazioni delle proprietà Iceberg, garantendo che tutte le chiavi appartengano al set consentito e prevenendo le voci duplicate.

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

Validazione delle proprietà

Le chiavi non valide o duplicate generano un errore quando vengono passate alla funzione di creazione o aggiornamento. Facoltativamente, è possibile convalidare le chiavi utilizzando il metodo. validate_property_keys() Ciò è utile quando si aggiungono o si rimuovono proprietà da un oggetto esistenteIcebergProperties.

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()

Crea un gruppo di funzionalità con le proprietà di Iceberg

La FeatureGroupManager.create funzione accetta un iceberg_properties parametro di tipoIcebergProperties. Crea un gruppo di funzionalità e attende il completamento della creazione prima di aggiornare le proprietà Iceberg nella tabella sottostante AWS Glue .

In alternativa, è possibile creare un oggettoFeatureGroup, callcreate, quindi passare l'oggetto del gruppo di funzionalità alla FeatureGroupManager classe e chiamare update per evitare il blocco mentre il gruppo di funzionalità termina la creazione.

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", } ), )

Aggiornare le proprietà di Iceberg su un gruppo di funzionalità esistente

La update funzione accetta un iceberg_properties parametro di tipoIcebergProperties. Prende un gruppo di funzionalità già creato, recupera quello AWS Glue Data Catalog del negozio offline e imposta le proprietà Iceberg specificate.

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", } ), )

Visualizza le proprietà di Iceberg su un gruppo di funzionalità

La FeatureGroupManager.get funzione accetta un include_iceberg_properties parametro. Se impostato suTrue, recupera le proprietà Iceberg che sono state impostate manualmente e fanno parte dell'elenco consentito e le aggiunge al iceberg_properties campo nell'oggetto restituito.

Restituisce solo le proprietà impostate che fanno parte dell'elenco consentito. Per ottenere tutte le proprietà della AWS Glue tabella, utilizza direttamente l' AWS Glue API. Se una proprietà Iceberg consentita non viene visualizzata, non è stata impostata in modo esplicito e utilizza il suo valore predefinito.

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"}

Autorizzazioni richieste

Assicurati che sia AmazonSageMakerFeatureStoreAccess le policy AmazonSageMakerFullAccess gestite che quelle gestite siano collegate al ruolo IAM che stai utilizzando. Gestisci la tua policy in base al tuo modello di accesso.

Proprietà Iceberg consentite

La tabella seguente elenca le proprietà della tabella Iceberg che sono state convalidate per l'uso con Feature Store. Per ulteriori informazioni su queste proprietà, vedete Configurazione della tabella nella documentazione di Apache Iceberg.

Proprietà consentite della tabella Iceberg
Proprietà Valore predefinito Description
write.metadata.delete-after-commit.enabled false Controlla se eliminare i file di metadati della versione tracciata più vecchia dopo ogni commit della tabella.
write.metadata.previous-versions-max 100 Il numero massimo di file di metadati delle versioni precedenti da tracciare.
history.expire.max-snapshot-age-ms 432000000(5 giorni) Età massima predefinita delle istantanee da conservare sulla tabella e su tutti i relativi rami durante la scadenza delle istantanee.
history.expire.min-snapshots-to-keep 1 Numero minimo predefinito di istantanee da conservare sulla tabella e su tutti i suoi rami durante la scadenza delle istantanee.
history.expire.max-ref-age-ms Long.MAX_VALUE(per sempre) Per i riferimenti alle istantanee ad eccezione del main ramo, l'età massima predefinita dei riferimenti alle istantanee da conservare durante la scadenza delle istantanee. La filiale non scade mai. main
write.target-file-size-bytes 536870912(512 MB) Controlla la dimensione dei file generati per raggiungere questo numero di byte.
write.delete.target-file-size-bytes 67108864(64 MB) Controlla la dimensione dei file eliminati generati per raggiungere questo numero di byte.
write.delete.mode copy-on-write Modalità utilizzata per i comandi di eliminazione: copy-on-write or merge-on-read (v2 e versioni successive).
write.update.mode copy-on-write Modalità utilizzata per i comandi di aggiornamento: copy-on-write or merge-on-read (v2 e versioni successive).
write.delete.granularity partition Controlla la granularità dei file di eliminazione generati: o. partition file
write.parquet.row-group-size-bytes 134217728(128 MB) Dimensione del gruppo delle file di parquet.
read.split.target-size 134217728(128 MB) Dimensione desiderata quando si combinano le suddivisioni di input dei dati.
read.split.metadata-target-size 33554432(32 MB) Dimensione desiderata quando si combinano le suddivisioni di input dei metadati.
read.split.open-file-cost 4194304(4 MB) Costo stimato per aprire un file, utilizzato come peso minimo quando si combinano le divisioni.