View a markdown version of this page

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.

Optimización de los costos de almacenamiento con la clase de tabla Standard-IA

DynamoDB ofrece dos clases de tabla: DynamoDB Standard y DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA). La clase de tabla de Standard-IA reduce los costos de almacenamiento y, al mismo tiempo, aumenta el costo del rendimiento de lectura y escritura. Es una buena opción cuando el almacenamiento es la parte principal del costo de una tabla y se accede a ella con poca frecuencia.

Esta compensación se mapea de forma natural en el patrón de series temporales. La tabla del periodo actual recibe la mayor parte del tráfico de lectura y escritura, así que manténgala en la clase de tabla estándar de DynamoDB, donde el rendimiento es más económico. A medida que una tabla deja de utilizarse activamente, se escribe muy pocas veces (o no se escribe) y se lee con poca frecuencia, sin dejar de retener sus datos. En el caso de estas tablas antiguas, el almacenamiento suele ser el costo más elevado, por lo que cambiarlas a la clase de tablas de Standard-IA puede reducir el costo total.

Tenga en cuenta lo siguiente al aplicar clases de tablas a tablas de series temporales:

  • Mantenga el periodo actual (activo) en la clase de tabla estándar de DynamoDB. El mayor costo de rendimiento de Standard-IA superaría los ahorros de almacenamiento en el caso de una tabla que admite un gran volumen de lecturas y escrituras.

  • Cambie la tabla de un periodo a Standard-IA cuando ya no se esté escribiendo en ella de forma activa y se acceda a ella con poca frecuencia, pero aún sea necesario retener sus datos (por ejemplo, para conformidad normativa o consultas históricas ocasionales).

  • Puede establecer la clase de tabla al crear una tabla o cambiarla más adelante. Evalúe la relación entre el costo de almacenamiento y el rendimiento de cada tabla antes de realizar el cambio y supervise los costos después del cambio.

Para obtener más información sobre las clases de tablas y cómo elegir entre ellas, consulte Clases de tablas de DynamoDB y Evaluación de la selección de clases de 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.