

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](feature-store-concepts.md#feature-store-concepts-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.

**Topics**
+ [

## Eliminación de registros del almacenamiento en línea
](#feature-store-delete-records-online-store)
+ [

## Eliminación de registros del almacenamiento sin conexión
](#feature-store-delete-records-offline-store)

## 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 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html)la 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 la `EventTime` entidad `RecordIdentifer` y. 
+ 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 el `OnlineStore`, aunque el marcador de registro eliminado siga escrito en el `OfflineStore`. 
+ `HardDelete` devuelve `EventTime`: `400 ValidationException` para indicar que se ha producido un error en la operación de eliminación. No se escribe ningún marcador de registro eliminado en el `OfflineStore`.

En los ejemplos siguientes se usa la operación [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/delete_record.html#delete-record](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-featurestore-runtime/client/delete_record.html#delete-record) del SDK para Python (Boto3) para eliminar un registro de un grupo de características. Para eliminar un registro de un grupo de características, necesitará lo siguiente:
+ 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-time`)

  La 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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-table-data.html) 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, `iceberg-table-name`. 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 `DisableGlueTableCreation = False` (predeterminado). Para obtener más información acerca de la creación de grupos de características, consulte [Empieza a usar Amazon SageMaker Feature Store](feature-store-getting-started.md).

Para obtener su `iceberg-table-name`, utilice la API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html.title](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeFeatureGroup.html.title) para obtener la [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCatalogConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCatalogConfig.html). 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](#feature-store-delete-records-online-store). 

1. Obtenga el nombre de la tabla de Iceberg, `iceberg-table-name`. 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](#feature-store-delete-records-offline-store-get-iceberg-table-name). 

1. Ejecute el comando `DELETE` para eliminar temporalmente los registros del `OfflineStore`, 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 donde `is_deleted` es `'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 de `DELETE` con Athena, consulte `DELETE` en la Guía del usuario de Athena.

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

   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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-table-data.html) en la Guía del usuario de Athena.

1. Elimine el registro de las versiones anteriores de las tablas de Iceberg para eliminar de forma permanente el registro del `OfflineStore`:

   1. Ejecute el comando `OPTIMIZE` para 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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-data-optimization.html) en la Guía del usuario de Athena. 

      ```
      OPTIMIZE iceberg-table-name REWRITE DATA USING BIN_PACK
      ```

   1. De forma opcional (solo es necesario ejecutarlo una vez), ejecute el comando `ALTER TABLE` para 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 propiedades `vacuum_min_snapshots_to_keep` y `vacuum_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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-managing-tables.html#querying-iceberg-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](https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg-creating-tables.html#querying-iceberg-table-properties) en al Guía del usuario de Athena. 

      ```
      ALTER TABLE iceberg-table-name SET TBLPROPERTIES (
        'vacuum_min_snapshots_to_keep'='your-specified-value',
        'vacuum_max_snapshot_age_seconds'='your-specified-value'
      )
      ```

   1. Ejecute el comando `VACUUM` para 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 comando `VACUUM` debe ejecutarse cuando ya no se haga referencia al registro eliminado en la instantánea actual. Por ejemplo, `vacuum_max_snapshot_age_seconds` después de la eliminación. Para obtener más información sobre `VACUUM` con Athena y la sintaxis, consulte [https://docs.aws.amazon.com/athena/latest/ug/vacuum-statement.html](https://docs.aws.amazon.com/athena/latest/ug/vacuum-statement.html).

      ```
      VACUUM iceberg-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](#feature-store-delete-records-offline-store-athena) anterior, pero utilizando los procedimientos de Spark. Para ver una lista completa de procedimientos, consulte [Spark Procedures](https://iceberg.apache.org/docs/1.3.1/spark-procedures/) en la documentación de Apache Iceberg. 
+ Cuando realice una eliminación temporal del `OfflineStore`: en lugar de usar el comando `DELETE` de Athena, use el comando [https://iceberg.apache.org/docs/latest/spark-writes/#delete-from](https://iceberg.apache.org/docs/latest/spark-writes/#delete-from) de 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 TABLE` de Athena, utilice el procedimiento [https://iceberg.apache.org/docs/1.3.1/spark-procedures/#expire_snapshots](https://iceberg.apache.org/docs/1.3.1/spark-procedures/#expire_snapshots).
  + Para eliminar los archivos de datos que ya no son necesarios de las tablas de Iceberg: en lugar de utilizar el comando `VACUUM` de Athena, utilice el procedimiento [https://iceberg.apache.org/docs/1.3.1/spark-procedures/#remove_orphan_files](https://iceberg.apache.org/docs/1.3.1/spark-procedures/#remove_orphan_files).