Prácticas recomendadas para administrar los datos de serie temporal en DynamoDB - Amazon DynamoDB

Prácticas recomendadas para administrar los datos de serie temporal en DynamoDB

Los principios generales de diseño de Amazon DynamoDB recomiendan utilizar la menor cantidad de tablas posible. En la mayoría de las aplicaciones, solo se necesita una tabla. Sin embargo, para los datos de series temporales, a menudo lo mejor para administrarlos es usar una tabla por aplicación y periodo.

Patrón de diseño de los datos de serie temporal

Imagine un caso típico de una serie temporal en el que quiere hacer un seguimiento de una gran cantidad de eventos. Tiene un patrón de acceso de escritura que establece que se registren todos los eventos con la fecha de hoy. El patrón de acceso de lectura podría establecer que los eventos de hoy se lean con más frecuencia, que los eventos de ayer se lean con mucha menos frecuencia y que los eventos más antiguos apenas se lean. Una manera de administrarlo consiste en incorporar la fecha y hora actuales en la clave principal.

Normalmente, el siguiente patrón de diseño sirve para administrar este tipo de escenarios eficazmente:

  • Cree una tabla por periodo, aprovisionada con la capacidad requerida de lectura y escritura y con los índices que se necesitan.

  • Antes de que termine cada periodo, precompile la tabla para el siguiente periodo. Justo cuando termine el período actual, dirija el tráfico de los eventos a la nueva tabla. Puede asignar nombres a estas tablas que indiquen los períodos que contienen.

  • Tan pronto como la tabla deje de estar disponible para escribir en ella, reduzca su capacidad de escritura aprovisionada a un valor menor (por ejemplo, 1 WCU) y aprovisione la capacidad de lectura apropiada, según proceda. Reduzca la capacidad de lectura aprovisionada de las tablas anteriores a medida que vayan venciendo. Puede optar por archivar o eliminar las tablas cuyo contenido va a necesitar en pocas ocasiones o no va a necesitar nunca.

Se trata de asignar, para el periodo actual, los recursos requeridos que vayan a experimentar el máximo volumen de tráfico y de reducir el aprovisionamiento de las tablas más antiguas que no se utilizan activamente, con lo que se ahorra en costos. En función de sus necesidades de negocio, podría plantearse fragmentar la escritura con el fin de distribuir el tráfico de manera uniforme en la clave de partición lógica. Para obtener más información, consulte Uso de la partición de escritura para distribuir las cargas de trabajo uniformemente en la tabla de DynamoDB.

Ejemplos de tablas de serie temporal

A continuación se muestra un ejemplo de datos de serie temporal. En él, la tabla actual está aprovisionada con una capacidad de lectura/escritura mayor y las tablas anteriores se han reducido, porque el acceso a ellas es infrecuente:

Esquema de una tabla para datos de serie temporal de gran volumen.