¿Por qué los elementos cuyo tiempo de vida ha vencido no se eliminan de mi tabla de Amazon DynamoDB?

4 minutos de lectura
0

Algunos de los elementos cuyo tiempo de vida (TTL) ha vencido no se eliminan de mi tabla de Amazon DynamoDB.

Solución

La función de TTL de DynamoDB le permite definir una marca de tiempo para cada elemento con el fin de establecer cuándo dejará de necesitarlo. Poco después de la fecha y la hora de la marca de tiempo especificada, DynamoDB elimina el elemento de la tabla sin consumir rendimiento de escritura. El TTL le permite conservar solo los elementos que siguen siendo actuales para responder a las necesidades de su carga de trabajo y así reducir los volúmenes de datos almacenados. El TTL no genera costes adicionales. Al activar el TTL en una tabla de DynamoDB, identifique un nombre de atributo para que el servicio lo busque a fin de determinar si un elemento puede vencer. Tras activar el TTL en una tabla, un proceso en segundo plano del escáner por partición evalúa de forma automática y continua el estado de vencimiento de los elementos de la tabla.

Estos son algunos de los motivos habituales por los que la eliminación de los elementos vencidos puede tardar más de lo esperado:

  • La operación de eliminación propiamente dicha de un elemento vencido puede variar según el tamaño y el nivel de actividad de la tabla. Como el TTL es un proceso en segundo plano, la capacidad que utiliza para definir los elementos como vencidos y eliminarlos puede variar.
  • Por lo general, el TTL tarda unos días en eliminar los elementos vencidos. Según el tamaño y el nivel de actividad de una tabla, la operación de eliminación propiamente dicha de un elemento vencido puede variar. El TTL gestiona la eliminación de los elementos teniendo en cuenta el esfuerzo requerido y, en algunos casos, la eliminación puede llevar más tiempo. DynamoDB utiliza la capacidad de backend de la tabla en lugar de la capacidad aprovisionada para eliminar los objetos. Si hay muchas solicitudes de eliminación y no queda suficiente capacidad de backend para eliminar los elementos de forma continua, es posible que el proceso tarde más.

Para comprobar si el TTL funciona correctamente, compruebe las siguientes condiciones:

  • Asegúrese de que ha activado el TTL en la tabla y de que la configuración relacionada es correcta:

  • El elemento debe contener el atributo que especificó al activar el TTL en la tabla.

  • El valor del atributo de TTL debe tener el tipo de datos Número.

  • El valor del atributo de TTL debe ser una marca de tiempo en segundos en el formato de tiempo Epoch de Unix. Para obtener más información, consulte Tiempo Unix en Wikipedia.

  • El valor del atributo de TTL debe ser una marca de fecha y hora con un vencimiento no superior a cinco años atrás.

  • Los procesos de TTL se ejecutan en la tabla solo cuando hay capacidad de sobra para que estos procesos no interfieran con las operaciones de la tabla. Si la tabla o sus particiones utilizan la mayor parte de la capacidad asignada, es posible que los procesos de TTL no se ejecuten.

Los elementos vencidos que aún no se han eliminado seguirán apareciendo en las lecturas, consultas y análisis. Si no quiere que los elementos vencidos se incluyan en los resultados, aplique un filtro para excluirlos. Utilice una expresión de filtro que devuelva solo los elementos cuyo valor de vencimiento del tiempo de vida supere el momento actual en formato Epoch. Para obtener más información, consulte Expresiones de filtro para el análisis.

Información relacionada

Uso del período de vida (TTL) de DynamoDB para caducar elementos

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 7 meses