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 Amazon SageMaker Feature Store API 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
Puoi eliminare definitivamente o indirettamente un record dal negozio online DeleteRecord
API utilizzando il parametro DeletionMode
request to specific SoftDelete
(impostazione predefinita) oHardDelete
. Per ulteriori informazioni su DeleteRecord
API, DeleteRecord
consulta 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 delle colonne delle feature sono impostati su
null
, ad eccezione dei valoriRecordIdentifer
andEventTime
feature. -
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
. -
HardDelete
restituisceEventTime
:400 ValidationException
per indicare che l'operazione di eliminazione non è riuscita. Nessun marcatore di eliminazione del record viene scritto suOfflineStore
.
Gli esempi seguenti utilizzano l'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-time
L'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 la cancellazione graduale è necessario utilizzare DeleteRecord
API l'impostazione predefinita DeletionMode
o impostarla su. DeletionMode
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 DeleteRecord
API e impostare DeletionMode
suHardDelete
.
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-name
DisableGlueTableCreation = False
(impostazione predefinita). Per ulteriori informazioni sulla creazione di gruppi di funzionalità, consulta Inizia a usare Amazon SageMaker Feature Store.
Per ottenere il tuo
, usa il iceberg-table-name
DescribeFeatureGroup
APIper 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
DELETE
per 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 diDELETE
con Athena, consultaDELETE
nella guida per l'utente di Athena.DELETE FROM
iceberg-table-name
WHERErecord-id-feature-name
IS IN ( SELECTrecord-id-feature-name
FROMiceberg-table-name
WHERE 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
OPTIMIZE
riscrive 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.OPTIMIZE
iceberg-table-name
REWRITE DATA USING BIN_PACK -
(Operazione facoltativa: deve essere eseguita solo una volta) Esegui il comando
ALTER TABLE
per 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_keep
evacuum_max_snapshot_age_seconds
. Per ulteriori informazioni sulla modifica delle proprietà del set di tabelle Iceberg, consulta la guida per l'utente ALTERTABLESETPROPERTIESdi Athena. Per ulteriori informazioni sulle coppie chiave-valore delle proprietà della tabella, consulta Proprietà delle tabelle nella guida per l'utente di Athena.ALTER TABLE
iceberg-table-name
SET TBLPROPERTIES ( 'vacuum_min_snapshots_to_keep'='your-specified-value
', 'vacuum_max_snapshot_age_seconds'='your-specified-value
' ) -
Esegui il comando
VACUUM
per rimuovere i file di dati non più necessari per le tue tabelle Iceberg, a cui non fa riferimento la versione corrente. Il comandoVACUUM
dovrebbe essere eseguito dopo che il record eliminato non è più referenziato nell'istantanea corrente. Ad esempio,vacuum_max_snapshot_age_seconds
dopo l'eliminazione. Per ulteriori informazioni suVACUUM
con Athena e sulla sintassi, consultaVACUUM
.VACUUM
iceberg-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 comandoDELETE
in Athena, usa il comandoDELETE FROM
in 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 TABLE
di Athena, usa la proceduraexpire_snapshots
. -
Per rimuovere i file di dati non più necessari dalle tabelle Iceberg: invece di usare il comando
VACUUM
in Athena, attieniti alla proceduraremove_orphan_files
.
-