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 dell'archivio offline.

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

Prerequisito: il gruppo di funzionalità deve disporre di un negozio offline che utilizzi il formato di 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 nell'archivio offline.

IcebergProperties tipo

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

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

Convalida delle proprietà

Le chiavi non valide e 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à 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, potete creare una chiamataFeatureGroup,create, quindi passare l'oggetto del gruppo di funzionalità alla FeatureGroupManager classe e chiamare update per evitare il blocco durante la creazione del gruppo di feature.

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

Aggiorna 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 l' AWS Glue Data Catalog archivio 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à Iceberg su un gruppo di funzionalità

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

Ciò restituisce solo le proprietà impostate che fanno parte dell'elenco consentito. Per ottenere tutte le proprietà della AWS Glue tabella, usa direttamente l' AWS Glue API. Se una proprietà Iceberg consentita non viene visualizzata, significa che 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 AmazonSageMakerFeatureStoreAccessle policy AmazonSageMakerFullAccessgestite 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à, consulta Configurazione delle tabelle 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 della versione precedente da tenere traccia.
history.expire.max-snapshot-age-ms 432000000(5 giorni) Età massima predefinita delle istantanee da conservare sulla tabella e su tutti i suoi 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. Il ramo non scade mai. main
write.target-file-size-bytes 536870912(512 MB) Controlla la dimensione dei file generati in base a questo numero di byte.
write.delete.target-file-size-bytes 67108864(64 MB) Controlla la dimensione dei file di eliminazione generati in base a 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 di file in parquet.
read.split.target-size 134217728(128 MB) Dimensione dell'obiettivo quando si combinano le suddivisioni di input dei dati.
read.split.metadata-target-size 33554432(32 MB) Dimensione target quando si combinano le suddivisioni di input dei metadati.
read.split.open-file-cost 4194304(4 MB) Il costo stimato per l'apertura di un file, utilizzato come peso minimo quando si combinano le suddivisioni.