Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Eliminación de un registro de un grupo de características
Puedes usar la API de Amazon SageMaker Feature Store para eliminar registros de tus grupos de características. Un grupo de características es un objeto que contiene sus datos de machine learning (ML), donde las columnas de sus datos se describen por características y sus datos están contenidos en registros. Un registro contiene valores para las características que están asociadas a un identificador de registro específico.
Hay dos configuraciones de almacenamiento para sus grupos de características: almacenamiento en línea y almacenamiento sin conexión. El almacenamiento en línea solo guarda el registro con la última hora del evento y, por lo general, se usa para buscar inferencias de ML en tiempo real. El almacenamiento sin conexión guarda todos los registros y actúa como una base de datos histórica y, por lo general, se usa para la exploración de características, el entrenamiento de ML y la inferencia por lotes.
Para obtener más información sobre los conceptos del almacén de características, consulte Diagramas de ingestion.
Hay dos formas de eliminar registros de los grupos de características y el comportamiento varía según la configuración del almacenamiento. En los siguientes temas, se describe cómo eliminar de forma automática y definitiva los registros del almacenamiento sin conexión y en línea y se proporcionan ejemplos.
Temas
Eliminación de registros del almacenamiento en línea
Puede eliminar un registro de forma temporal o definitiva del almacenamiento en línea mediante la API DeleteRecord con el parámetro de solicitud DeletionMode para especificar SoftDelete (predeterminado) o HardDelete. Para obtener más información sobre la DeleteRecord API, consulta DeleteRecordla referencia de la SageMaker API de Amazon.
Con el almacenamiento en línea:
-
Al realizar la eliminación temporal (opción predeterminada), el registro ya no se puede recuperar mediante GetRecord o BatchGetRecord y los valores de las columnas de entidades se establecen en ese valor
null, excepto los valores de laEventTimeentidadRecordIdentifery. -
Al eliminarlo de forma definitiva, el registro se elimina por completo del almacenamiento en línea.
En ambos casos, el almacén de características agrega el marcador de registro eliminado al OfflineStore. El marcador de registro eliminado es un registro con el mismo RecordIdentifer que el original, pero con el valor is_deleted establecido en True, el EventTime establecido en el EventTime de entrada de eliminación y otros valores de características establecidos en null.
Tenga en cuenta que el valor de EventTime especificado en DeleteRecord debe establecerse después del EventTime del registro existente en el OnlineStore para el mismo RecordIdentifer. Si no es así, no se produce la eliminación:
-
Para
SoftDelete, el registro existente (no eliminado) permanezca en elOnlineStore, aunque el marcador de registro eliminado siga escrito en elOfflineStore. -
HardDeletedevuelveEventTime:400 ValidationExceptionpara indicar que se ha producido un error en la operación de eliminación. No se escribe ningún marcador de registro eliminado en elOfflineStore.
En los ejemplos siguientes se usa la operación delete_record
-
Nombre del grupo de características (
)feature-group-name -
Valor del identificador como una cadena (
)record-identifier-value -
Hora del evento de eliminación (
)deletion-event-timeLa hora del evento de eliminación debe ser posterior a la hora del evento del registro que desea eliminar.
Ejemplo de eliminación temporal de un almacenamiento en línea
Para la eliminación temporal, tendrá que usar la API DeleteRecord y puede usar el DeletionMode predeterminado o configurar el DeletionMode en 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' )
Ejemplo de borrado definitivo de un almacenamiento en línea
Para eliminar de forma definitiva, tendrá que usar la API DeleteRecord y configurar el DeletionMode en 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' )
Eliminación de registros del almacenamiento sin conexión
Con Amazon SageMaker Feature Store puedes eliminar de forma automática y definitiva un registro del formato de tabla OfflineStore Iceberg. Con el formato de tabla Iceberg OfflineStore:
-
Al eliminar un registro de forma temporal, la versión más reciente del archivo de tabla de Iceberg no contendrá el registro, pero las versiones anteriores sí lo contendrán y se podrá acceder a ellas mediante viajes en el tiempo. Para obtener información sobre los viajes en el tiempo, consulte Consulta de tablas de Iceberg y realización de viajes en el tiempo en la Guía del usuario de Athena.
-
Al eliminar un registro de forma definitiva, se eliminan las versiones anteriores de la tabla de Iceberg que contienen el registro. En este caso, debe especificar qué versiones de la tabla de Iceberg desea eliminar.
Obtención del nombre de la tabla de Iceberg
Para eliminar de forma temporal y definitiva de la tabla de Iceberg OfflineStore, tendrá que obtener el nombre de su tabla de Iceberg, . En las siguientes instrucciones se da por sentado que ya ha utilizado el almacén de características para crear un grupo de características mediante la configuración de almacenamiento sin conexión con el formato de tabla de Iceberg, con iceberg-table-nameDisableGlueTableCreation = False (predeterminado). Para obtener más información acerca de la creación de grupos de características, consulte Empieza con Amazon SageMaker Feature Store.
Para obtener su , utilice la API iceberg-table-nameDescribeFeatureGroup para obtener la DataCatalogConfig. Contiene metadatos de la tabla de Glue, que sirve como catálogo de datos para el OfflineStore. El TableName en la DataCatalogConfig es su .iceberg-table-name
Ejemplo de eliminación temporal y definitiva del almacenamiento sin conexión de Amazon Athena
En las siguientes instrucciones, se utiliza Amazon Athena para eliminar de forma temporal y, luego, definitivamente un registro de la tabla de Iceberg OfflineStore. Esto supone que el registro que pretende eliminar en su OfflineStore es un marcador de registro eliminado. Para obtener información sobre el marcador de registro eliminado de su OfflineStore, consulte Eliminación de registros del almacenamiento en línea.
-
Obtenga el nombre de la tabla de Iceberg,
. Para obtener información sobre cómo obtener el nombre de la tabla de iceberg, consulte Obtención del nombre de la tabla de Iceberg.iceberg-table-name -
Ejecute el comando
DELETEpara eliminar temporalmente los registros delOfflineStore, de forma que la versión (o instantánea) más reciente de la tabla de Iceberg no contenga los registros. En el siguiente ejemplo, se eliminan los registros dondeis_deletedes'True'y las versiones anteriores de dichos registros en la hora del evento. Puede agregar condiciones adicionales en función de otras características para restringir la eliminación. Para obtener más información sobre el uso deDELETEcon Athena, consulteDELETEen la Guía del usuario de Athena.DELETE FROMiceberg-table-nameWHERErecord-id-feature-nameIS IN ( SELECTrecord-id-feature-nameFROMiceberg-table-nameWHERE is_deleted = 'True')Los registros eliminados temporalmente se pueden seguir viendo en las versiones anteriores del archivo al realizar un viaje en el tiempo. Para obtener información sobre cómo realizar viajes en el tiempo, consulte Consulta de tablas de Iceberg y realización de viajes en el tiempo en la Guía del usuario de Athena.
-
Elimine el registro de las versiones anteriores de las tablas de Iceberg para eliminar de forma permanente el registro del
OfflineStore:-
Ejecute el comando
OPTIMIZEpara rescribir los archivos de datos en una disposición más optimizada, en función de su tamaño y del número de archivos de eliminación asociados. Para obtener más información sobre la optimización de las tablas de Iceberg y la sintaxis, consulte Optimización de las tablas de Iceberg en la Guía del usuario de Athena.OPTIMIZEiceberg-table-nameREWRITE DATA USING BIN_PACK -
De forma opcional (solo es necesario ejecutarlo una vez), ejecute el comando
ALTER TABLEpara modificar los valores del conjunto de tablas de Iceberg y establecer cuándo se eliminarán definitivamente las versiones anteriores de los archivos de acuerdo con sus especificaciones. Esto se puede hacer mediante la asignación de valores a las propiedadesvacuum_min_snapshots_to_keepyvacuum_max_snapshot_age_seconds. Para obtener más información sobre cómo modificar las propiedades del conjunto de tablas de Iceberg, consulte ALTER TABLE SET PROPERTIES en la Guía del usuario de Athena. Para obtener más información sobre los pares clave-valor de las propiedades de la tabla de Iceberg, consulte Propiedades de la tabla en al Guía del usuario de Athena.ALTER TABLEiceberg-table-nameSET TBLPROPERTIES ( 'vacuum_min_snapshots_to_keep'='your-specified-value', 'vacuum_max_snapshot_age_seconds'='your-specified-value' ) -
Ejecute el comando
VACUUMpara eliminar los archivos de datos que ya no son necesarios para las tablas de Iceberg y a los que no hace referencia la versión actual. El comandoVACUUMdebe ejecutarse cuando ya no se haga referencia al registro eliminado en la instantánea actual. Por ejemplo,vacuum_max_snapshot_age_secondsdespués de la eliminación. Para obtener más información sobreVACUUMcon Athena y la sintaxis, consulteVACUUM.VACUUMiceberg-table-name
-
Ejemplo de eliminación temporal y definitiva del almacenamiento sin conexión de Apache Spark
Para eliminar un registro de la tabla de Iceberg OfflineStore de forma temporal y, después, de forma definitiva, mediante Apache Spark, puede seguir las mismas instrucciones que en el Ejemplo de eliminación temporal y definitiva del almacenamiento sin conexión de Amazon Athena anterior, pero utilizando los procedimientos de Spark. Para ver una lista completa de procedimientos, consulte Spark Procedures
-
Cuando realice una eliminación temporal del
OfflineStore: en lugar de usar el comandoDELETEde Athena, use el comandoDELETE FROMde Apache Spark. -
Para eliminar el registro de las versiones anteriores de las tablas de Iceberg y eliminar de forma definitiva el registro del
OfflineStore:-
Al cambiar la configuración de la tabla Iceberg: en lugar de utilizar el comando
ALTER TABLEde Athena, utilice el procedimientoexpire_snapshots. -
Para eliminar los archivos de datos que ya no son necesarios de las tablas de Iceberg: en lugar de utilizar el comando
VACUUMde Athena, utilice el procedimientoremove_orphan_files.
-