Löscht einen Datensatz aus einer Feature-Gruppe. - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Löscht einen Datensatz aus einer Feature-Gruppe.

Sie können die Amazon SageMaker Feature Store-API verwenden, um Datensätze aus Ihren Feature-Gruppen zu löschen. Eine Feature-Gruppe ist ein Objekt, das Ihre maschinellen Lerndaten (ML) enthält, wobei die Spalten Ihrer Daten durch Funktionen beschrieben werden und Ihre Daten in Datensätzen enthalten sind. Ein Datensatz enthält Werte für Features, die einer bestimmten Datensatz-ID zugeordnet sind.

Es gibt zwei Speicherkonfigurationen für Ihre Featuregruppen: Online-Speicher und Offline-Speicher. Der Online-Speicher speichert nur den Datensatz mit dem letzten Zeitpunkt des Ereignisses und wird in der Regel für die Echtzeitsuche nach ML-Inferenzen verwendet. Der Offline-Speicher speichert alle Datensätze und dient als historische Datenbank. Er wird in der Regel für die Erkundung von Merkmalen, das ML-Training und die Batch-Inferenz verwendet.

Weitere Informationen zu Feature-Store-Konzepten finden Sie unter Verschluckungsdiagramme.

Es gibt zwei Möglichkeiten, Datensätze aus Ihren Feature-Gruppen zu löschen, und das Verhalten ist je nach Speicherkonfiguration unterschiedlich. In den folgenden Themen beschreiben wir, wie Sie Datensätze aus den Online- und Offline-Speichern automatisch und dauerhaft löschen können, und geben Beispiele.

Löschen Sie Datensätze aus dem Online-Speicher

Sie können mithilfe der DeleteRecord-API einen Datensatz aus dem Online-Speicher entweder automatisch oder dauerhaft löschen, indem Sie mit dem DeletionMode-Anforderungsparameter angeben SoftDelete (Standard) oder HardDelete. Weitere Informationen zur DeleteRecord API finden Sie DeleteRecordin der Amazon SageMaker API-Referenz.

Mit dem Online-Speicher:

  • Beim automatischen Löschen (Standard) ist der Datensatz nicht mehr über GetRecord oder abrufbar, BatchGetRecord und die Werte der Feature-Spalte sind auf gesetztnull, mit Ausnahme der EventTime Feature-Werte RecordIdentifer und.

  • Beim endgültigen Löschen wird der Datensatz vollständig aus dem Online-Speicher entfernt.

In beiden Fällen hängt Feature Store die Markierung für gelöschte Datensätze an die OfflineStore an. Bei der Markierung für gelöschte Datensätze handelt es sich um einen Datensatz, der dem Original entspricht RecordIdentifer, dessen is_deleted Wert jedoch auf True die Löscheingabe EventTime auf EventTime gesetzt ist und andere Feature-Werte auf null eingestellt sind.

Beachten Sie, dass der EventTime in DeleteRecordangegebene Wert später gesetzt werden sollte als der EventTime des vorhandenen Datensatzes OnlineStore für denselben Datensatz RecordIdentifer. Ist dies nicht der Fall, erfolgt das Löschen nicht:

  • Denn SoftDelete der vorhandene (nicht gelöschte) Datensatz verbleibt in der OnlineStore, obwohl die Markierung zum Löschen von Datensätzen immer noch in den OfflineStore geschrieben wird.

  • HardDelete gibt EventTime: 400 ValidationException zurück, um anzuzeigen, dass der Löschvorgang fehlgeschlagen ist. Es wurde keine Markierung zum Löschen eines Datensatzes in den OfflineStore geschrieben.

In den folgenden Beispielen wird der delete_record Vorgang SDK for Python (Boto3) verwendet, um einen Datensatz aus einer Feature-Gruppe zu löschen. Zum Löschen eines Datensatzes aus einer Feature-Gruppe benötigen Sie:

  • Name der Funktionsgruppe (feature-group-name)

  • Bezeichnerwert als Zeichenfolge (record-identifier-value) aufzeichnen

  • Uhrzeit des Löschereignisses (deletion-event-time)

    Die Zeit des Löschvorgangs sollte nach der Ereigniszeit des Datensatzes liegen, den Sie löschen möchten.

Beispiel für ein Soft-Delete im Online-Speicher

Für das automatische Löschen müssen Sie die DeleteRecord API verwenden und können die Standardeinstellung verwenden DeletionMode oder die Option DeletionMode auf SoftDelete setzen.

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' )

Beispiel für ein hartes Löschen im Online-Speicher

Für das endgültige Löschen müssen Sie die DeleteRecord API verwenden und den Wert DeletionMode auf HardDelete setzen.

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' )

Löschen Sie Datensätze aus dem Offline-Speicher

Mit Amazon SageMaker Feature Store können Sie einen Datensatz aus dem OfflineStore Iceberg-Tabellenformat sowohl weich als auch dauerhaft löschen. Mit dem OfflineStore Eisberg-Tabellenformat:

  • Wenn Sie einen Datensatz im Vorhinein löschen, enthält die neueste Version der Eisberg-Tabellendatei den Datensatz nicht. Frühere Versionen enthalten den Datensatz jedoch weiterhin und Sie können mithilfe von Zeitreisen darauf zugreifen. Informationen zu Zeitreisen finden Sie unter Abfragen von Eisberg-Tabellendaten und Durchführen von Zeitreisen im Athena-Benutzerhandbuch.

  • Wenn Sie einen Datensatz dauerhaft löschen, entfernen Sie damit frühere Versionen der Eisberg-Tabelle, die den Datensatz enthalten. In diesem Fall sollten Sie angeben, welche Versionen der Eisberg-Tabelle Sie löschen möchten.

Besorgen Sie sich den Namen Ihrer Eisberg-Tabelle

Um aus Ihrer OfflineStore Eisberg-Tabelle „Soft“ und „Hard“ zu löschen, benötigen Sie den Namen Ihrer Eisberg-Tabelle, iceberg-table-name. In den folgenden Anweisungen wird davon ausgegangen, dass Sie Feature Store bereits verwendet haben, um eine Feature-Gruppe mithilfe der Offline-Speicherkonfiguration im Eisberg-Tabellenformat mit DisableGlueTableCreation = False (Standard) zu erstellen. Weitere Informationen zum Erstellen eines Features finden Sie unter Erste Schritte mit Amazon SageMaker Feature Store.

Um Ihre iceberg-table-name zu erhalten, verwenden Sie die DescribeFeatureGroup API, um sie abzurufen DataCatalogConfig. Die Metadaten der Glue-Tabelle, die als Datenkatalog für den OfflineStore dient. Die TableName-Organisationseinheit befindet sich innerhalb der DataCatalogConfig iceberg-table-nameOrganisationseinheit.

Beispiel für weiches und hartes Löschen im Amazon Athena Offline-Speicher

In den folgenden Anweisungen wird Amazon Athena verwendet, um einen Datensatz aus der OfflineStore Eisberg-Tabelle sanft und anschließend dauerhaft zu löschen. Dabei wird davon ausgegangen, dass es sich bei dem Datensatz, den Sie in Ihrer Datenbank löschen möchten, um einen gelöschten Datensatz OfflineStore handelt. Informationen zur Markierung für gelöschte Datensätze in Ihrem OfflineStore finden Sie unter Löschen Sie Datensätze aus dem Online-Speicher.

  1. Besorgen Sie sich den Namen Ihrer Eisberg-Tabelle, iceberg-table-name. Informationen darüber, wie Sie Ihren Eisberg-Tabellennamen ermitteln können, finden Sie unter Besorgen Sie sich den Namen Ihrer Eisberg-Tabelle.

  2. Führen Sie den DELETE Befehl zum automatischen Löschen der Datensätze auf der OfflineStore aus, sodass die neueste Version (oder der aktuelle Snapshot) der Eisberg-Tabelle die Datensätze nicht enthält. Im folgenden Beispiel werden die Datensätze, in denen sie is_deleted 'True' sich befinden, und die vorherigen Versionen dieser Datensätze gelöscht. Sie können zusätzliche Bedingungen hinzufügen, die auf anderen Funktionen basieren, um das Löschen einzuschränken. Weitere Informationen zur Verwendung von DELETE Athena finden Sie im DELETE Amazon Athena-Benutzerhandbuch.

    DELETE FROM iceberg-table-name WHERE record-id-feature-name IS IN ( SELECT record-id-feature-name FROM iceberg-table-name WHERE is_deleted = 'True')

    Die vorübergehend gelöschten Datensätze sind in früheren Dateiversionen weiterhin sichtbar, indem Zeitreisen durchgeführt werden. Informationen zur Durchführung von Zeitreisen finden Sie unter Abfragen von Eisberg-Tabellendaten und Durchführen von Zeitreisen im Athena-Benutzerhandbuch.

  3. Entfernen Sie den Datensatz aus früheren Versionen Ihrer Eisberg-Tabellen, um den Datensatz dauerhaft zu löschen aus OfflineStore:

    1. Die OPTIMIZE-Verdichtungsaktion schreibt Datendateien basierend auf ihrer Größe und Anzahl der zugehörigen Löschdateien in ein optimierteres Layout um. Weitere Informationen zur Optimierung von Eisberg-Tabellen und der Syntax finden Sie unter Optimieren von Eisberg-Tabellen im Athena-Benutzerhandbuch.

      OPTIMIZE iceberg-table-name REWRITE DATA USING BIN_PACK
    2. (Optional, muss nur einmal ausgeführt werden) Führen Sie den ALTER TABLE Befehl aus, um die Werte der Eisberg-Tabelle zu ändern und festzulegen, wann frühere Dateiversionen gemäß Ihren Angaben dauerhaft gelöscht werden sollen. Dies kann durch Zuweisen von Werten vacuum_min_snapshots_to_keep und vacuum_max_snapshot_age_seconds Eigenschaften erreicht werden. Weitere Informationen zum Ändern der Eigenschaften Ihres Eisberg-Tabellensatzes finden Sie unter ALTER TABLE SET PROPERTIES im Athena-Benutzerhandbuch. Weitere Informationen zu Schlüssel-Wert-Paaren für Eisberg-Tabelleneigenschaften finden Sie unter Tabelleneigenschaften im Athena-Benutzerhandbuch.

      ALTER TABLE iceberg-table-name SET TBLPROPERTIES ( 'vacuum_min_snapshots_to_keep'='your-specified-value', 'vacuum_max_snapshot_age_seconds'='your-specified-value' )
    3. Führen Sie den VACUUM Befehl aus, um nicht mehr benötigte Datendateien für Ihre Eisberg-Tabellen zu entfernen, auf die in der aktuellen Version nicht verwiesen wird. Der VACUUM Befehl sollte ausgeführt werden, nachdem der gelöschte Datensatz im aktuellen Snapshot nicht mehr referenziert wird. Zum Beispiel vacuum_max_snapshot_age_seconds nach dem Löschen. Weitere Informationen zu VACUUM Athena und der Syntax finden Sie unter VACUUM.

      VACUUM iceberg-table-name

Beispiel für Soft- und Harddelete im Apache Spark-Offline-Speicher

Um mit Apache Spark einen Datensatz aus der OfflineStore Eisberg-Tabelle sanft und dann dauerhaft zu löschen, können Sie die gleichen Anweisungen wie Beispiel für weiches und hartes Löschen im Amazon Athena Offline-Speicher oben befolgen, jedoch Spark-Verfahren verwenden. Eine vollständige Liste der Verfahren finden Sie unter Spark-Prozeduren in der Apache-Iceberg-Dokumentation.

  • Verwenden Sie beim Soft-Löschen aus dem OfflineStore: anstatt den DELETE Befehl in Athena zu verwenden, den DELETE FROM Befehl in Apache Spark.

  • Um den Datensatz aus früheren Versionen Ihrer Eisberg-Tabellen zu entfernen, um den Datensatz dauerhaft aus OfflineStore zu löschen:

    • Wenn Sie Ihre Eisberg-Tabellenkonfiguration ändern: Verwenden Sie das Verfahren, anstatt den ALTER TABLE Befehl von Athena zu verwenden expire_snapshots.

    • Um nicht mehr benötigte Datendateien aus Ihren Eisberg-Tabellen zu entfernen: Anstatt den VACUUM Befehl in Athena zu verwenden, verwenden Sie das remove_orphan_files Verfahren.