Prácticas recomendadas sobre el uso de claves de clasificación para organizar datos en DynamoDB - Amazon DynamoDB

Prácticas recomendadas sobre el uso de claves de clasificación para organizar datos en DynamoDB

En una tabla de Amazon DynamoDB, la clave principal que identifica de manera inequívoca cada elemento de la tabla puede constar de una clave de partición y una clave de clasificación.

Si las claves de ordenación están bien diseñadas, tienen dos beneficios principales:

  • Recopilan información relacionada en un único lugar en el que los datos se pueden consultar de forma eficaz. Si se diseñan meticulosamente, permiten recuperar grupos de elementos relacionados que suelen ser necesarios utilizando consultas de rango con operadores, como begins_with, between, >, <, etc.

  • Las claves de ordenación compuestas permiten definir en los datos relaciones jerárquicas (de uno a varios) que pueden consultarse en cualquier nivel de la jerarquía.

    Por ejemplo, en una tabla con ubicaciones geográficas, la clave de ordenación podría estructurarse del modo siguiente:

    [country]#[region]#[state]#[county]#[city]#[neighborhood]

    Esto le permitiría crear consultas de rango eficaces para una lista de ubicaciones en cualquiera de estos niveles de agregación, desde country hasta neighborhood, pasando por cualquier elemento intermedio.

Uso de claves de clasificación para el control de versiones

Muchas aplicaciones deben conservar el historial de revisiones de los elementos por motivos de auditoría o conformidad y para poder recuperar fácilmente la versión más reciente. Existe un patrón de diseño eficaz que permite hacerlo mediante prefijos de clave de ordenación:

  • Cree dos copias de cada elemento nuevo: una copia deber tener el prefijo de número de versión 0 (por ejemplo, v0_) al principio de la clave de ordenación mientras que la otra debe tener el prefijo de número de versión 1 (por ejemplo, v1_).

  • Cada vez que el elemento se actualice, utilice el siguiente prefijo de versión en la clave de ordenación de la versión actualizada y copie el contenido actualizado en el elemento cuyo prefijo de versión es 0. Esto significa que la última versión de cada elemento puede localizarse fácilmente a través del prefijo 0.

Por ejemplo, un fabricante de piezas podría utilizar un esquema como el de la siguiente ilustración.

Ejemplo de control de versiones en el que se muestra una tabla con una clave principal y atributos de elementos de datos.

Varios auditores realizan una serie de auditorías en el elemento Equipment_1. Los resultados de cada nueva auditoría se capturan en un nuevo elemento de la tabla, comenzando por el número de versión 1 e incrementando el número con cada revisión.

Cuando se agrega una nueva revisión, la capa de la aplicación sustituye el contenido del elemento que tiene la versión 0 (donde la clave de ordenación es igual a v0_Audit) por el contenido de la nueva versión.

Siempre que la aplicación tenga que recuperar el estado de auditoría más reciente, podrá consultar el prefijo v0_ de la clave de ordenación.

Si la aplicación tiene que recuperar todo el historial de revisiones, podrá consultar todos los elementos situados bajo la clave de partición del elemento y filtrar el elemento v0_.

Este diseño también podría funcionar para realizar auditorías de varias piezas de un componente del equipo si se incluyera el ID de cada pieza en la clave de ordenación, detrás del prefijo.