Duración del tiempo de vida (TTL) de los registros - Amazon SageMaker

Duración del tiempo de vida (TTL) de los registros

El almacén de características de Amazon SageMaker ofrece la opción de eliminar de forma definitiva los registros del almacenamiento en línea una vez transcurrido un tiempo, con la duración del tiempo de vida (TTL) (TtlDuration). El registro caducará cuando se alcance el EventTime más TtlDuration del registro, o ExpiresAt = EventTime + TtlDuration. La TtlDuration se puede aplicar a nivel de grupo de características, donde todos los registros del grupo de características tendrán la TtlDuration de forma predeterminada, o a nivel de registro individual. Si no se especifica la TtlDuration, el valor predeterminado es null y el registro permanecerá en el almacenamiento en línea hasta que se sobrescriba.

Un registro eliminado mediante TtlDuration se elimina de forma permanente, es decir, se elimina definitivamente del almacenamiento en línea, y el registro eliminado se agrega al almacenamiento sin conexión. Para obtener más información sobre los modos de eliminación y eliminación definitiva, consulte DeleteRecord en la Guía de referencia de la API de Amazon SageMaker. Cuando un registro se elimina de forma definitiva, se hace inmediatamente inaccesible al usar las API del Almacén de características.

importante

TTL suele eliminar los elementos caducados en pocos días. En función del tamaño y el nivel de actividad de una tabla, la operación de eliminación real de un elemento vencido puede variar. Debido a que TTL está destinado a ser un proceso en segundo plano, la naturaleza de la capacidad utilizada para el vencimiento y la eliminación de elementos a través de TTL es variable (pero gratuita). Para obtener más información sobre cómo se eliminan los elementos de una tabla de DynamoDB, consulte Cómo funciona: uso del período de vida (TL) de DynamoDB.

TtlDuration debe ser un diccionario que contenga una Unit y un Value. La Unit debe ser una cadena con los valores “segundos”, “minutos”, “horas”, “días” o “semanas” y el Value debe ser un número entero mayor o igual a 1. La TtlDuration se puede aplicar mientras se utilizan las API CreateFeatureGroup, UpdateFeatureGroup y PutRecord. Consulte la sintaxis de solicitud y respuesta en la documentación del SDK para Python (Boto3) para las API CreateFeatureGroup, UpdateFeatureGroup y PutRecord.

  • Cuando la TtlDuration se aplica a nivel de grupo de características (mediante las API CreateFeatureGroup o UpdateFeatureGroup), la TtlDuration aplicada pasa a ser la TtlDuration predeterminada para todos los registros que se agreguen al grupo de características desde el momento en que se llama a la API. Al aplicar la TtlDuration con la API UpdateFeatureGroup, no se convertirá en la TtlDuration predeterminada para los registros que se crearon antes de que se llamara a la API.

    Para eliminar el valor de TtlDuration predeterminado de un grupo de características existente, utilice la API UpdateFeatureGroup y establezca TtlDuration, Unit y Value en null.

  • Cuando la TtlDuration se aplica a nivel de registro (por ejemplo, mediante una API PutRecord), la duración de la TtlDuration se aplica a ese registro y se utiliza en lugar de la TtlDuration predeterminada a nivel de grupo de características.

  • Cuando la TtlDuration se aplica a nivel de grupo de características, es posible que la TtlDuration tarde unos minutos en surtir efecto.

  • Si la TtlDuration se usa cuando no hay un almacenamiento en línea, recibirá un mensaje de error Validation Exception (400).

El siguiente código de ejemplo muestra cómo aplicar la TtlDuration al actualizar un grupo de características, de modo que los registros que se agreguen al grupo de características después de ejecutar la API caduquen, de forma predeterminada, cuatro semanas después de la hora del evento.

import boto3 sagemaker_client = boto3.client("sagemaker") feature_group_name = '<YOUR_FEATURE_GROUP_NAME>' sagemaker_client.update_feature_group( FeatureGroupName=feature_group_name, OnlineStoreConfig={ TtlDuration:{ Unit: "Weeks", Value: 4 } } )

Puede usar la API DescribeFeatureGroup para ver la TtlDuration predeterminada.

Para ver los momentos de caducidad, ExpiresAt (horario UTC, formato ISO-8601), mientras utilice las API GetRecordo BatchGetRecord debe configurar ExpirationTimeResponse en ENABLED. Consulte la sintaxis de solicitud y respuesta en la documentación del SDK para Python (Boto3) para las API DescribeFeatureGroup, GetRecord y BatchGetRecord.