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 DeleteRecord
in 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 gesetzt
null
, mit Ausnahme derEventTime
Feature-WerteRecordIdentifer
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 DeleteRecord
angegebene 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 derOnlineStore
, obwohl die Markierung zum Löschen von Datensätzen immer noch in denOfflineStore
geschrieben wird. -
HardDelete
gibtEventTime
:400 ValidationException
zurück, um anzuzeigen, dass der Löschvorgang fehlgeschlagen ist. Es wurde keine Markierung zum Löschen eines Datensatzes in denOfflineStore
geschrieben.
In den folgenden Beispielen wird der delete_record
-
Name der Funktionsgruppe (
)feature-group-name
-
Bezeichnerwert als Zeichenfolge (
) aufzeichnenrecord-identifier-value
-
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,
. 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 iceberg-table-name
DisableGlueTableCreation = False
(Standard) zu erstellen. Weitere Informationen zum Erstellen eines Features finden Sie unter Erste Schritte mit Amazon SageMaker Feature Store.
Um Ihre
zu erhalten, verwenden Sie die iceberg-table-name
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
Organisationseinheit.iceberg-table-name
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.
-
Besorgen Sie sich den Namen Ihrer Eisberg-Tabelle,
. Informationen darüber, wie Sie Ihren Eisberg-Tabellennamen ermitteln können, finden Sie unter Besorgen Sie sich den Namen Ihrer Eisberg-Tabelle.iceberg-table-name
-
Führen Sie den
DELETE
Befehl zum automatischen Löschen der Datensätze auf derOfflineStore
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 sieis_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 vonDELETE
Athena finden Sie imDELETE
Amazon Athena-Benutzerhandbuch.DELETE FROM
iceberg-table-name
WHERErecord-id-feature-name
IS IN ( SELECTrecord-id-feature-name
FROMiceberg-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.
-
Entfernen Sie den Datensatz aus früheren Versionen Ihrer Eisberg-Tabellen, um den Datensatz dauerhaft zu löschen aus
OfflineStore
:-
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 -
(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 Wertenvacuum_min_snapshots_to_keep
undvacuum_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
' ) -
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. DerVACUUM
Befehl sollte ausgeführt werden, nachdem der gelöschte Datensatz im aktuellen Snapshot nicht mehr referenziert wird. Zum Beispielvacuum_max_snapshot_age_seconds
nach dem Löschen. Weitere Informationen zuVACUUM
Athena und der Syntax finden Sie unterVACUUM
.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
-
Verwenden Sie beim Soft-Löschen aus dem
OfflineStore
: anstatt denDELETE
Befehl in Athena zu verwenden, denDELETE 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 verwendenexpire_snapshots
. -
Um nicht mehr benötigte Datendateien aus Ihren Eisberg-Tabellen zu entfernen: Anstatt den
VACUUM
Befehl in Athena zu verwenden, verwenden Sie dasremove_orphan_files
Verfahren.
-