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'Amazon SageMaker Feature Store API 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'DeleteRecord
APIaide du paramètre de DeletionMode
demande pour spécifier SoftDelete
(par défaut) ouHardDelete
. Pour plus d'informations à ce DeleteRecord
API sujet, consultez DeleteRecord
le manuel 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 deEventTime
fonctionRecordIdentifer
et. -
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
SoftDelete
effet, l'enregistrement existant (non supprimé) reste dans leOnlineStore
, bien que le marqueur de suppression d'enregistrement soit toujours écrit dans leOfflineStore
. -
HardDelete
renvoieEventTime
:400 ValidationException
pour 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'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-time
L'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 le DeleteRecord
API et 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 définitive dans une boutique en ligne
Pour une suppression définitive, vous devez utiliser le DeleteRecord
API et régler DeletionMode
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-name
DisableGlueTableCreation = 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 le iceberg-table-name
DescribeFeatureGroup
APIpour obtenir DataCatalogConfig
. Il contient les métadonnées de la table Glue qui sert de catalogue de données pour leOfflineStore
. L'TableName
inté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
DELETE
commande 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_deleted
se 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'utilisationDELETE
d'Athena, consultez le guide deDELETE
l'utilisateur d'Athena.DELETE FROM
iceberg-table-name
WHERErecord-id-feature-name
IS IN ( SELECTrecord-id-feature-name
FROMiceberg-table-name
WHERE 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
OPTIMIZE
commande 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, consultez la section Optimisation des tables Iceberg dans le guide de l'utilisateur d'Athena.OPTIMIZE
iceberg-table-name
REWRITE DATA USING BIN_PACK -
(Facultatif, ne doit être exécuté qu'une seule fois) Exécutez la
ALTER TABLE
commande 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 attribuant des valeurs àvacuum_min_snapshots_to_keep
et desvacuum_max_snapshot_age_seconds
propriétés. Pour plus d'informations sur la modification des propriétés de votre ensemble de tables Iceberg, consultez le guide ALTERTABLESETPROPERTIESde 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 TABLE
iceberg-table-name
SET TBLPROPERTIES ( 'vacuum_min_snapshots_to_keep'='your-specified-value
', 'vacuum_max_snapshot_age_seconds'='your-specified-value
' ) -
Exécutez la
VACUUM
commande pour supprimer les fichiers de données inutiles pour vos tables Iceberg, non référencés par la version actuelle. LaVACUUM
commande 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_seconds
après la suppression. Pour plus d'informations surVACUUM
Athena et la syntaxe, consultez.VACUUM
VACUUM
iceberg-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 laDELETE
commande dans Athena, utilisez laDELETE FROM
commande 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 TABLE
commande d'Athena,expire_snapshots
utilisez la procédure. -
Pour supprimer les fichiers de données inutiles de vos tables Iceberg : au lieu d'utiliser la
VACUUM
commande dans Athena, suivez la procédure.remove_orphan_files
-