Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Supprimer des enregistrements de vos groupes de fonctionnalités
Vous pouvez utiliser l'API Amazon SageMaker Feature Store pour supprimer des enregistrements de vos groupes de fonctionnalités. Un groupe de fonctionnalités est un objet qui contient vos données d'apprentissage automatique (ML), dans lequel les colonnes de vos données sont décrites par des entités et vos données sont contenues dans des enregistrements. Un enregistrement contient des valeurs pour des entités associées à un identifiant d'enregistrement spécifique.
Il existe deux configurations de stockage pour vos groupes de fonctionnalités : boutique en ligne et boutique hors ligne. La boutique en ligne ne conserve que l'heure du dernier événement et est généralement utilisée pour la recherche en temps réel pour l'inférence ML. Le magasin hors ligne conserve tous les enregistrements et agit comme une base de données historique. Il est généralement utilisé pour l'exploration des fonctionnalités, l'apprentissage automatique et l'inférence par lots.
Pour plus d'informations sur les concepts de Feature Store, consultez Schémas d'ingestion.
Il existe deux méthodes pour supprimer des enregistrements de vos groupes de fonctionnalités, et le comportement varie en fonction de la configuration de stockage. Dans les rubriques suivantes, nous allons décrire comment supprimer de manière logicielle et définitive des enregistrements des boutiques en ligne et hors ligne et nous fournirons des exemples.
Rubriques
Supprimer des enregistrements de la boutique en ligne
Vous pouvez supprimer automatiquement ou définitivement un enregistrement de la boutique en ligne à l'aide de l'DeleteRecordAPI en utilisant le paramètre de DeletionMode requête pour spécifier SoftDelete (par défaut) ouHardDelete. Pour plus d'informations sur l'DeleteRecordAPI, consultez DeleteRecordle Amazon SageMaker API Reference.
Avec la boutique en ligne :
-
Lorsque vous supprimez progressivement (par défaut), l'enregistrement n'est plus récupérable par GetRecord ou BatchGetRecord et les valeurs des colonnes d'entités sont définies sur
null, à l'exception des valeurs deEventTimefonctionRecordIdentiferet. -
Lorsque vous effectuez une suppression définitive, l'enregistrement est complètement supprimé de la boutique en ligne.
Dans les deux cas, Feature Store ajoute le marqueur d'enregistrement supprimé auOfflineStore. Le marqueur d'enregistrement supprimé est un enregistrement RecordIdentifer identique à l'original, mais dont la is_deleted valeur est définie surTrue, EventTime définie sur l'entrée EventTime de suppression et les autres valeurs de fonction définies surnull.
Notez que le EventTime paramètre spécifié dans DeleteRecord doit être défini plus tard que celui EventTime de l'enregistrement existant dans OnlineStore le même formatRecordIdentifer. Si ce n'est pas le cas, la suppression n'a pas lieu :
-
En
SoftDeleteeffet, l'enregistrement existant (non supprimé) reste dans leOnlineStore, bien que le marqueur de suppression d'enregistrement soit toujours écrit dans leOfflineStore. -
HardDeleterenvoieEventTime:400 ValidationExceptionpour indiquer que l'opération de suppression a échoué. Aucun marqueur de suppression d'enregistrement n'est écrit sur leOfflineStore.
Les exemples suivants utilisent l'opération SDK for Python (Boto3) pour delete_record
-
Nom du groupe de fonctionnalités (
)feature-group-name -
Enregistrer la valeur de l'identifiant sous forme de chaîne (
)record-identifier-value -
Heure de l'événement de suppression (
)deletion-event-timeL'heure de l'événement de suppression doit être ultérieure à l'heure de l'événement de l'enregistrement que vous souhaitez supprimer.
Exemple de suppression logicielle dans une boutique en ligne
Pour une suppression progressive, vous devez utiliser l'DeleteRecordAPI et vous pouvez utiliser la valeur par défaut DeletionMode ou DeletionMode définir la valeur surSoftDelete.
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' )
Exemple de suppression matérielle dans une boutique en ligne
Pour une suppression définitive, vous devez utiliser l'DeleteRecordAPI et DeletionMode définir la valeur surHardDelete.
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' )
Supprimer des enregistrements du magasin hors ligne
Avec Amazon SageMaker Feature Store, vous pouvez supprimer de manière logicielle et définitive un enregistrement du format de tableau OfflineStore Iceberg. Avec le format de tableau OfflineStore Iceberg :
-
Lorsque vous supprimez progressivement un enregistrement, la dernière version du fichier de table Iceberg ne contient pas l'enregistrement, mais les versions précédentes contiennent toujours l'enregistrement et sont accessibles par le biais du voyage dans le temps. Pour plus d'informations sur le voyage dans le temps, voir Interroger les données de la table Iceberg et effectuer un voyage dans le temps dans le guide de l'utilisateur d'Athena.
-
Lorsque vous supprimez définitivement un enregistrement, vous supprimez les versions précédentes de la table Iceberg qui le contient. Dans ce cas, vous devez spécifier les versions de la table Iceberg que vous souhaitez supprimer.
Obtenez le nom de votre table Iceberg
Pour effectuer une suppression logicielle ou matérielle de votre table OfflineStore Iceberg, vous devez obtenir le nom de votre table Iceberg,. Les instructions suivantes supposent que vous avez déjà utilisé Feature Store pour créer un groupe de fonctionnalités à l'aide de la configuration de stockage du magasin hors ligne utilisant le format de table Iceberg, avec iceberg-table-nameDisableGlueTableCreation = False (par défaut). Pour plus d'informations sur la création de groupes de fonctionnalités, consultezCommencez avec Amazon SageMaker Feature Store.
Pour obtenir votre, utilisez l'iceberg-table-nameDescribeFeatureGroupAPI pour obtenir DataCatalogConfig. Il contient les métadonnées de la table Glue qui sert de catalogue de données pour leOfflineStore. L'TableNameintérieur DataCatalogConfig est le vôtre.iceberg-table-name
Exemple de suppression logicielle et matérielle de la boutique hors ligne Amazon Athena
Les instructions suivantes utilisent Amazon Athena pour supprimer progressivement puis définitivement un enregistrement de la table OfflineStore Iceberg. Cela suppose que l'enregistrement que vous souhaitez supprimer OfflineStore est un marqueur d'enregistrement supprimé. Pour plus d'informations sur le marqueur d'enregistrement supprimé dans votreOfflineStore, consultezSupprimer des enregistrements de la boutique en ligne.
-
Obtenez le nom de votre table Iceberg,
. Pour plus d'informations sur la façon d'obtenir le nom de votre table Iceberg, consultezObtenez le nom de votre table Iceberg.iceberg-table-name -
Exécutez la
DELETEcommande pour supprimer progressivement les enregistrements duOfflineStore, de telle sorte que la dernière version (ou capture instantanée) de la table Iceberg ne contienne pas les enregistrements. L'exemple suivant supprime les enregistrements où ilsis_deletedse trouvent'True'et les versions précédentes de ces enregistrements au moment de l'événement. Vous pouvez ajouter des conditions supplémentaires basées sur d'autres fonctionnalités pour limiter la suppression. Pour plus d'informations sur l'utilisationDELETEd'Athena, consultez le guide deDELETEl'utilisateur d'Athena.DELETE FROMiceberg-table-nameWHERErecord-id-feature-nameIS IN ( SELECTrecord-id-feature-nameFROMiceberg-table-nameWHERE is_deleted = 'True')Les enregistrements supprimés par logiciel peuvent toujours être consultés dans les versions précédentes des fichiers en effectuant un voyage dans le temps. Pour plus d'informations sur le voyage dans le temps, voir Interroger les données de la table Iceberg et effectuer un voyage dans le temps dans le guide de l'utilisateur d'Athena.
-
Supprimez l'enregistrement des versions précédentes de vos tables Iceberg pour le supprimer définitivement de
OfflineStore:-
Exécutez la
OPTIMIZEcommande pour réécrire les fichiers de données dans une mise en page plus optimisée, en fonction de leur taille et du nombre de fichiers de suppression associés. Pour plus d'informations sur l'optimisation des tables Iceberg et de la syntaxe, voir Optimisation des tables Iceberg dans le guide de l'utilisateur d'Athena.OPTIMIZEiceberg-table-nameREWRITE DATA USING BIN_PACK -
(Facultatif, ne doit être exécuté qu'une seule fois) Exécutez la
ALTER TABLEcommande pour modifier les valeurs du jeu de tables Iceberg et définissez le moment où les versions précédentes des fichiers doivent être définitivement supprimées conformément à vos spécifications. Cela peut être fait en affectant des valeurs àvacuum_min_snapshots_to_keepet desvacuum_max_snapshot_age_secondspropriétés. Pour plus d'informations sur la modification des propriétés de votre jeu de tables Iceberg, voir MODIFIER LES PROPRIÉTÉS DU JEU DE TABLES dans le guide de l'utilisateur d'Athena. Pour plus d'informations sur les paires clé-valeur des propriétés des tables Iceberg, consultez la section Propriétés des tables dans le guide de l'utilisateur d'Athena.ALTER TABLEiceberg-table-nameSET TBLPROPERTIES ( 'vacuum_min_snapshots_to_keep'='your-specified-value', 'vacuum_max_snapshot_age_seconds'='your-specified-value' ) -
Exécutez la
VACUUMcommande pour supprimer les fichiers de données inutiles pour vos tables Iceberg, non référencés par la version actuelle. LaVACUUMcommande doit être exécutée une fois que l'enregistrement supprimé n'est plus référencé dans l'instantané actuel. Par exemple,vacuum_max_snapshot_age_secondsaprès la suppression. Pour plus d'informations surVACUUMAthena et la syntaxe, consultez.VACUUMVACUUMiceberg-table-name
-
Exemple de suppression logicielle et matérielle d'un magasin hors ligne Apache Spark
Pour supprimer définitivement un enregistrement de la table OfflineStore Iceberg à l'aide d'Apache Spark, vous pouvez suivre les mêmes instructions que Exemple de suppression logicielle et matérielle de la boutique hors ligne Amazon Athena ci-dessus, mais en utilisant les procédures Spark. Pour une liste complète des procédures, consultez les procédures Spark
-
Lorsque vous effectuez une suppression progressive dans
OfflineStore: au lieu d'utiliser laDELETEcommande dans Athena, utilisez laDELETE FROMcommande dans Apache Spark. -
Pour supprimer l'enregistrement des versions précédentes de vos tables Iceberg, supprimez définitivement l'enregistrement de
OfflineStore:-
Lorsque vous modifiez la configuration de votre table Iceberg : au lieu d'utiliser la
ALTER TABLEcommande d'Athena,expire_snapshotsutilisez la procédure. -
Pour supprimer les fichiers de données inutiles de vos tables Iceberg : au lieu d'utiliser la
VACUUMcommande dans Athena, suivez la procédure.remove_orphan_files
-