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.
Suppression d’enregistrements de vos groupes de caractéristiques
Vous pouvez utiliser l'API Amazon SageMaker Feature Store pour supprimer des enregistrements de vos groupes de fonctionnalités. Un groupe de caractéristiques est un objet qui contient vos données de machine learning (ML), dans lequel les colonnes de vos données sont décrites par des caractéristiques et vos données sont incluses dans des enregistrements. Un enregistrement contient les valeurs des caractéristiques associées à un identifiant d’enregistrement spécifique.
Il existe deux configurations de stockage pour vos groupes de caractéristiques : magasin en ligne et magasin hors ligne. Le magasin en ligne conserve uniquement l’enregistrement avec l’heure d’événement la plus récente et est généralement utilisé 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 d’historique. Il est généralement utilisé pour l’exploration des caractéristiques, l’entraînement ML et l’inférence par lots.
Pour plus d’informations sur les concepts de Feature Store, consultez Diagrammes d’ingestion.
Il existe deux manières de supprimer des enregistrements de vos groupes de caractéristiques, et le comportement varie en fonction de la configuration de stockage. Dans les rubriques suivantes, nous allons décrire comment supprimer de manière partielle ou complète des enregistrements à partir des magasins en ligne et hors ligne et nous fournirons des exemples.
Rubriques
Suppression d’enregistrements du magasin en ligne
Vous pouvez effectuer une suppression partielle ou complète d’un enregistrement du magasin en ligne à l’aide de l’API DeleteRecord en utilisant le paramètre de demande DeletionMode pour spécifier SoftDelete (par défaut) ou HardDelete. Pour plus d'informations sur l'DeleteRecordAPI, consultez DeleteRecordle Amazon SageMaker API Reference.
Avec le magasin 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 complète, l’enregistrement est complètement supprimé du magasin en ligne.
Dans les deux cas, Feature Store ajoute le marqueur d’enregistrement supprimé à OfflineStore. Le marqueur d’enregistrement supprimé est un enregistrement doté du même RecordIdentifer que l’original, mais dont la valeur is_deleted est définie sur True, la valeur EventTime est définie sur l’entrée EventTime de suppression et les autres valeurs de caractéristiques sont définies sur null.
Notez que l’élément EventTime spécifié dans DeleteRecord doit être défini plus tard que l’élément EventTime de l’enregistrement existant dans OnlineStore pour le même élément RecordIdentifer. Si ce n’est pas le cas, la suppression n’a pas lieu :
-
Pour
SoftDelete, l’enregistrement existant (non supprimé) reste dansOnlineStore, bien que le marqueur de suppression d’enregistrement soit toujours écrit dansOfflineStore. -
HardDeleterenvoieEventTime:400 ValidationExceptionpour indiquer que l’opération de suppression a échoué. Aucun marqueur de suppression d’enregistrement n’est écrit dansOfflineStore.
Les exemples suivants utilisent l’opération delete_record
-
Nom du groupe de caractéristiques (
)feature-group-name -
Valeur de l’identifiant de l’enregistrement 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 postérieure à l’heure de l’événement que vous souhaitez supprimer.
Exemple de suppression partielle dans le magasin en ligne
Pour une suppression partielle, vous devez utiliser l’API DeleteRecord et vous pouvez utiliser l’élément DeletionMode par défaut ou définir DeletionMode sur 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' )
Exemple de suppression complète dans le magasin en ligne
Pour une suppression complète, vous devez utiliser l’API DeleteRecord et définir DeletionMode sur 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' )
Suppression d’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 table OfflineStore Iceberg :
-
Lorsque vous effectuez une suppression partielle d’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 obtenir des informations sur le voyage dans le temps, consultez Interrogation des données de la table et exécution de Time Travel dans le Guide de l’utilisateur Athena.
-
Lorsque vous supprimez complètement un enregistrement, vous supprimez les versions précédentes de la table Iceberg qui contiennent l’enregistrement. Dans ce cas, vous devez spécifier les versions de la table Iceberg que vous souhaitez supprimer.
Obtention du nom de votre table Iceberg
Pour effectuer une suppression logicielle ou matérielle de votre table Iceberg OfflineStore, 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 caractéristiques à 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 en savoir plus sur la manière de créer des groupes de caractéristiques, consultez Commencez avec Amazon SageMaker Feature Store.
Pour obtenir votre , utilisez l’API iceberg-table-nameDescribeFeatureGroup pour obtenir DataCatalogConfig. Elle contient les métadonnées de la table Glue qui sert de catalogue de données pour OfflineStore. L’élément TableName dans l’élément DataCatalogConfig est votre .iceberg-table-name
Exemple de suppression partielle et complète du magasin hors ligne Amazon Athena
Les instructions suivantes utilisent Amazon Athena pour supprimer partiellement puis complètement un enregistrement de la table Iceberg OfflineStore. Cela suppose que l’enregistrement que vous souhaitez supprimer dans votre OfflineStore est un marqueur d’enregistrement supprimé. Pour obtenir des informations sur le marqueur d’enregistrement supprimé dans votre OfflineStore, consultez Suppression d’enregistrements du magasin en ligne.
-
Obtention du nom de votre table Iceberg,
. Pour obtenir des informations sur la façon d’obtenir le nom de votre table Iceberg, consultez Obtention du nom de votre table Iceberg.iceberg-table-name -
Exécutez la commande
DELETEpour supprimer partiellement les enregistrements dansOfflineStore, de telle sorte que la dernière version (ou instantané) de la table Iceberg ne contienne pas les enregistrements. L’exemple suivant supprime les enregistrements lorsqueis_deleteda pour valeur'True'ainsi que 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 caractéristiques pour limiter la suppression. Pour plus d’informations sur l’utilisation deDELETEavec Athena, consultezDELETEdans le Guide de l’utilisateur Athena.DELETE FROMiceberg-table-nameWHERErecord-id-feature-nameIS IN ( SELECTrecord-id-feature-nameFROMiceberg-table-nameWHERE is_deleted = 'True')Les enregistrements supprimés partiellement peuvent toujours être consultés dans les versions précédentes des fichiers en effectuant un voyage dans le temps. Pour obtenir des informations sur la réalisation d’un voyage dans le temps, consultez Interrogation des données de la table et exécution de Time Travel dans le Guide de l’utilisateur Athena.
-
Supprimez l’enregistrement des versions précédentes de vos tables Iceberg pour supprimer complètement l’enregistrement d’
OfflineStore:-
Exécutez la commande
OPTIMIZEpour réécrire les fichiers de données dans une disposition 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, consultez Optimisation des tables Iceberg dans le Guide de l’utilisateur Athena.OPTIMIZEiceberg-table-nameREWRITE DATA USING BIN_PACK -
(Facultatif, ne doit être exécuté qu’une seule fois) Exécutez la commande
ALTER TABLEpour modifier les valeurs du jeu de tables Iceberg et définissez le moment où les versions précédentes des fichiers doivent être complètement supprimées conformément à vos spécifications. Cela peut être fait en affectant des valeurs aux propriétésvacuum_min_snapshots_to_keepetvacuum_max_snapshot_age_seconds. Pour plus d’informations sur la modification des propriétés de votre jeu de tables Iceberg, consultez ALTER TABLE SET PROPERTIES dans le Guide de l’utilisateur Athena. Pour plus d’informations sur les paires clé-valeur des propriétés des tables Iceberg, consultez Propriétés de table dans le Guide de l’utilisateur 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 commande
VACUUMpour supprimer les fichiers de données devenus inutiles pour vos tables Iceberg, non référencés par la version actuelle. La commandeVACUUMdoit ê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 surVACUUMavec Athena et la syntaxe, consultezVACUUM.VACUUMiceberg-table-name
-
Exemple de suppression partielle et complète du magasin hors ligne Amazon Spark
Pour supprimer partiellement puis complètement un enregistrement de la table OfflineStore Iceberg à l’aide d’Apache Spark, vous pouvez suivre les mêmes instructions que celles fournies dans Exemple de suppression partielle et complète du magasin hors ligne Amazon Athena ci-dessus, mais en utilisant des procédures Spark. Pour obtenir une liste complète des procédures, consultez Procédures Spark
-
Lors d’une suppression partielle d’
OfflineStore: au lieu d’utiliser la commandeDELETEdans Athena, utilisez la commandeDELETE FROMdans Apache Spark. -
Pour supprimer l’enregistrement des versions précédentes de vos tables Iceberg pour supprimer complètement l’enregistrement d’
OfflineStore:-
Lorsque vous modifiez la configuration de vos tables Iceberg : au lieu d’utiliser la commande
ALTER TABLEd’Athena, utilisez la procédureexpire_snapshots. -
Pour supprimer les fichiers de données devenus inutiles de vos tables Iceberg : au lieu d’utiliser la commande
VACUUMdans Athena, utilisez la procédureremove_orphan_files.
-