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à.
Eliminazione di record da gruppi di funzionalità
Puoi utilizzare l'API Amazon SageMaker Feature Store per eliminare i record dai tuoi gruppi di funzionalità. Un gruppo di funzionalità è un oggetto che contiene i dati di machine learning (ML), in cui le colonne dei dati sono descritte per funzionalità e i dati sono contenuti in record. Un record contiene valori per le funzionalità associate a un identificativo di record specifico.
Esistono due configurazioni di archiviazione per i tuoi gruppi di funzionalità: archivio online e archivio offline. L’archivio online registra solo l'ora dell'evento più recente e viene in genere utilizzato per la ricerca in tempo reale per l'inferenza ML. L'archivio offline conserva tutti i record, funge da database storico e viene in genere utilizzato per l'esplorazione delle funzionalità, l’addestramento ML e l'inferenza in batch.
Per ulteriori informazioni sui concetti del Feature Store, consulta Diagrammi di inserimento.
Esistono due modi per eliminare i record dai gruppi di funzionalità: il comportamento è diverso a seconda della configurazione di archiviazione. Nei seguenti argomenti viene descritto come eliminare automaticamente e definitivamente i record dagli archivi online e offline tramite alcuni esempi.
Eliminazione di record dall'archivio online
È possibile eliminare automaticamente o indirettamente un record dall'archivio online con l’API DeleteRecord utilizzando il parametro di richiesta DeletionMode per specificare SoftDelete (impostazione predefinita) o HardDelete. Per ulteriori informazioni sull'DeleteRecordAPI, DeleteRecordconsulta Amazon SageMaker API Reference.
Con l'archivio online:
-
Quando si esegue la cancellazione graduale (impostazione predefinita), il record non è più recuperabile da GetRecord o BatchGetRecord e i valori della colonna feature sono impostati su
null, ad eccezione dei valoriRecordIdentifere dellaEventTimefunzionalità. -
Quando si esegue l'eliminazione definitiva, il record viene completamente rimosso dall'archivio online.
In entrambi i casi, Feature Store aggiunge il marcatore del record eliminato a OfflineStore. Il marcatore del record eliminato è un record con RecordIdentifer uguale all'originale, ma con il valore is_deleted impostato su True, EventTime impostato sull'input di eliminazione EventTime e altri valori di funzionalità impostati su null.
Si noti che il valore EventTime specificato in DeleteRecord deve essere impostato dopo EventTime per il record esistente in OnlineStore per lo stesso RecordIdentifer. In caso contrario, l'eliminazione non avviene:
-
Per
SoftDelete, il record esistente (non eliminato) rimane inOnlineStore, sebbene il marcatore del record di eliminazione sia ancora scritto inOfflineStore. -
HardDeleterestituisceEventTime:400 ValidationExceptionper indicare che l'operazione di eliminazione non è riuscita. Nessun marcatore di eliminazione del record viene scritto suOfflineStore.
I seguenti esempi utilizzano l'operazione delete_record
-
Nome del gruppo di funzionalità (
)feature-group-name -
Valore di identificazione del record come stringa (
)record-identifier-value -
Ora dell'evento di eliminazione (
)deletion-event-timeL'ora dell'evento di eliminazione deve essere successiva all'ora dell'evento del record che si desidera eliminare.
Esempio di eliminazione temporanea in un archivio online
Per l’eliminazione temporanea è necessario utilizzare l'API DeleteRecord e utilizzare DeletionMode per impostazione predefinita o configurare DeletionMode su SoftDelete.
import boto3 client = boto3.client('sagemaker-featurestore-runtime') client.delete_record( FeatureGroupName='feature-group-name', RecordIdentifierValueAsString='record-identifier-value', EventTime='deletion-event-time', TargetStores=[ 'OnlineStore', ], DeletionMode='SoftDelete' )
Esempio di eliminazione definitiva da un archivio online
Per l'eliminazione definitiva è necessario utilizzare l'API DeleteRecord e impostare DeletionMode su HardDelete.
import boto3 client = boto3.client('sagemaker-featurestore-runtime') client.delete_record( FeatureGroupName='feature-group-name', RecordIdentifierValueAsString='record-identifier-value', EventTime='deletion-event-timestamp', TargetStores=[ 'OnlineStore', ], DeletionMode='HardDelete' )
Eliminazione di record dall'archivio offline
Con Amazon SageMaker Feature Store puoi eliminare in modo semplice e automatico un record dal formato di tabella OfflineStore Iceberg. Con il formato di tabella Iceberg OfflineStore:
-
Quando si elimina automaticamente un record, l'ultima versione del file di tabella Iceberg non conterrà il record, ma le versioni precedenti conterranno comunque il record e sarà possibile accedervi utilizzando Time Travel. Per informazioni su Time Travel, consulta Interrogazione dei dati di tabella Iceberg ed esecuzione di Time Travel nella guida per l'utente di Athena.
-
Quando si elimina definitivamente un record, si rimuovono le versioni precedenti della tabella Iceberg che contengono il record. In questo caso è necessario specificare quali versioni della tabella Iceberg si desidera eliminare.
Ottenimento del nome della tabella Iceberg
Per l'eliminazione temporanea e definitiva dalla tabella Iceberg OfflineStore, è necessario ottenere il nome della tabella Iceberg . Le seguenti istruzioni presuppongono che tu abbia già utilizzato Feature Store per creare un gruppo di funzionalità utilizzando la configurazione di archiviazione dell'archivio offline utilizzando il formato di tabella Iceberg con iceberg-table-nameDisableGlueTableCreation = False (impostazione predefinita). Per ulteriori informazioni sulla creazione di gruppi di funzionalità, consulta Inizia a usare Amazon SageMaker Feature Store.
Per ottenere , usa l’API iceberg-table-nameDescribeFeatureGroup per ottenere DataCatalogConfig. Contiene i metadati della tabella Glue che funge da catalogo dati per OfflineStore. TableName in DataCatalogConfig è .iceberg-table-name
Esempio di eliminazione temporanea e definitiva dell'archivio offline di Amazon Athena
Le seguenti istruzioni utilizzano Amazon Athena per l'eliminazione temporanea e definitiva di un record dalla tabella Iceberg OfflineStore. Ciò presuppone che il record che intendi eliminare in OfflineStore sia un marcatore del record eliminato. Per informazioni sul marcatore del record eliminato in OfflineStore, consulta Eliminazione di record dall'archivio online.
-
Ottieni il nome della tabella Iceberg (
). Per informazioni su come ottenere il nome della tabella Iceberg, consulta Ottenimento del nome della tabella Iceberg.iceberg-table-name -
Esegui il comando
DELETEper eliminare gradualmente i record presenti inOfflineStore, in modo che l'ultima versione (o istantanea) della tabella Iceberg non contenga i record. L'esempio seguente elimina i record in cuiis_deletedè'True'e le precedenti versioni dell’ora dell’evento di tali record. È possibile aggiungere condizioni aggiuntive basate su altre funzionalità per limitare l'eliminazione. Per ulteriori informazioni sull'utilizzo diDELETEcon Athena, consultaDELETEnella guida per l'utente di Athena.DELETE FROMiceberg-table-nameWHERErecord-id-feature-nameIS IN ( SELECTrecord-id-feature-nameFROMiceberg-table-nameWHERE is_deleted = 'True')I record eliminati temporaneamente sono ancora visibili nelle versioni precedenti dei file eseguendo Time Travel. Per informazioni sull’esecuzione di Time Travel, consulta Interrogazione dei dati di tabella Iceberg ed esecuzione di Time Travel nella guida per l'utente di Athena.
-
Rimuovi il record dalle versioni precedenti delle tabelle Iceberg per eliminarlo definitivamente da
OfflineStore;-
Il comando
OPTIMIZEriscrive i file di dati in un layout ottimizzato in base alle dimensioni e al numero di file di eliminazione associati. Per ulteriori informazioni sull'ottimizzazione delle tabelle Iceberg e sulla sintassi, consulta Ottimizzazione delle tabelle Iceberg nella guida per l'utente di Athena.OPTIMIZEiceberg-table-nameREWRITE DATA USING BIN_PACK -
(Operazione facoltativa: deve essere eseguita solo una volta) Esegui il comando
ALTER TABLEper modificare i valori del set di tabelle Iceberg e scegli quando le versioni precedenti dei file devono essere eliminate definitivamente in base alle tue specifiche. L’operazione può essere svolta assegnando valori alle proprietàvacuum_min_snapshots_to_keepevacuum_max_snapshot_age_seconds. Per ulteriori informazioni sulla modifica delle proprietà del set di tabelle Iceberg, consulta MODIFICA DELLE PROPRIETÀ DEL SET DI TABELLE nella guida per l'utente di Athena. Per ulteriori informazioni sulle coppie chiave-valore delle proprietà della tabella, consulta Proprietà delle tabelle nella guida per l'utente di Athena.ALTER TABLEiceberg-table-nameSET TBLPROPERTIES ( 'vacuum_min_snapshots_to_keep'='your-specified-value', 'vacuum_max_snapshot_age_seconds'='your-specified-value' ) -
Esegui il comando
VACUUMper rimuovere i file di dati non più necessari per le tue tabelle Iceberg, a cui non fa riferimento la versione corrente. Il comandoVACUUMdovrebbe essere eseguito dopo che il record eliminato non è più referenziato nell'istantanea corrente. Ad esempio,vacuum_max_snapshot_age_secondsdopo l'eliminazione. Per ulteriori informazioni suVACUUMcon Athena e sulla sintassi, consultaVACUUM.VACUUMiceberg-table-name
-
Esempio di eliminazione temporanea e definitiva dell'archivio offline di Apache Spark
Per eliminare temporaneamente e, in seguito, definitivamente un record dalla tabella Iceberg OfflineStore utilizzando Apache Spark, puoi seguire le stesse istruzioni riportate in Esempio di eliminazione temporanea e definitiva dell'archivio offline di Amazon Athena di cui sopra, ma utilizzando le procedure Spark. Per un elenco completo delle procedure, consulta Procedure Spark
-
Quando si esegue un'eliminazione temporanea da
OfflineStore: anziché utilizzare il comandoDELETEin Athena, usa il comandoDELETE FROMin Apache Spark. -
Rimuovi il record dalle versioni precedenti delle tabelle Iceberg per eliminarlo definitivamente da
OfflineStore:-
Quando modifichi la configurazione della tabella Iceberg: invece di usare il comando
ALTER TABLEdi Athena, usa la proceduraexpire_snapshots. -
Per rimuovere i file di dati non più necessari dalle tabelle Iceberg: invece di usare il comando
VACUUMin Athena, attieniti alla proceduraremove_orphan_files.
-