Índices secundarios locales de Dynamodb

Índices secundarios locales de Dynamodb
Los índices secundarios locales de DynamoDB, también conocidos como LSIS, contienen copias o réplicas de todos o algunos atributos de tabla. También proporcionan claves de clasificación alternativa para teclas de valor de partición. Utilizan claves de clasificación diferentes para organizar sus datos utilizando las teclas de partición de la tabla.

Por lo tanto, la creación de uno o múltiples índices secundarios locales proporciona a sus aplicaciones la opción de beneficiarse de las claves de clasificación alternativa al realizar las consultas en lugar de depender exclusivamente de las claves principales de la tabla base. El uso de índices secundarios locales elimina la necesidad de escaneos de mesa enteros, ya que simplemente puede usar una clave de clasificación para realizar consultas rápidas.

Esta característica hace que los índices secundarios locales sean vitales para aplicaciones que se beneficiarían de las teclas de clasificación alternativa. Crear un índice secundario local en una tabla DynamodB le permite emitir un escaneo o consulta contra los índices.

Cómo crear un índice secundario local en una tabla DynamodB

Antes de llegar a crear los índices secundarios locales, es vital tener en cuenta que todos los índices secundarios locales deben satisfacer las siguientes condiciones:

  • Tener una tecla de clasificación que contenga solo un atributo escalar
  • Tener claves de partición idénticas y teclas de partición de la tabla de origen
  • Proyecto la tecla de clasificación de la tabla fuente para actuar como un atributo no clave
  • Las tablas con LSIS tienen un mando de hasta 10 GB por valor clave de partición
  • LSIS puede compartir el rendimiento con tablas base

Debe utilizar el parámetro LocalSecondaryIndexes en la operación creatable para crear un índice secundario local. Por lo general, la creación de un LSI ocurre mientras crea una tabla DynamodB. Del mismo modo, eliminar una tabla también elimina todos los índices secundarios locales sobre la tabla.

Al crear un LSI, recuerde especificar un solo atributo no clave que actúa como la clave de clasificación para el LSI. El atributo elegido tiene que ser un número escalar, cadena o binario ya que se no permiten otros tipos de documentos, tipos escalares y tipos establecidos. Además, puede proyectar convenientemente los atributos como escalares, conjuntos y documentos en su índice secundario local.

Uso de índices secundarios locales de DynamoDB

Los siguientes son algunos de los usos del caso para los índices secundarios locales:

a. Realización de consultas y escaneos
LSIS habilita las diferentes órdenes de clasificación de la misma lista de elementos. Mientras usan teclas de clasificación diferentes, siempre tienen las mismas teclas de partición. Por ejemplo, una tabla con el ID de usuario como clave de partición, Songtitle como la clave de clasificación y DateadDed y los datos como otros atributos se ven así:

| INSERMEID (CLAVE DE PARTICIÓN) | Songtitle (clave de clasificación) | Dateadded | Datos |

La tabla anterior puede responder consultas que están destinadas a recuperar todas las canciones que se clasifican por nombres para cada usuario consultando el ID de usuario. Sin embargo, recuperar todas las canciones por usuario por fecha agregada significa que recuperas todas las canciones y las ordenas.

Todavía puede usar un índice de usuario local con un ID de usuario como clave de partición y el DataadDed en la categoría de clave de clasificación y recuperar instantáneamente las canciones de cualquier usuario que se ordenen por fecha agregada. Esto se debe a que las operaciones de consulta en los índices secundarios locales devuelven todos los elementos que tienen los valores de clave de partición similares cada vez que más de un elemento comparten un valor clave corto.

Nuevamente, no hay un orden particular de que los elementos coincidentes lleguen. Las consultas sobre LSIS usan consistencia fuerte o eventual. Los clientes potenciales consistentes fuertes, naturalmente, devuelven los últimos valores.

Por otro lado, las operaciones de exploración LSI normalmente devuelven todos los datos de índice secundario local. Al hacer un escaneo, debe especificar tanto la tabla como el nombre del índice. Además, los escaneos permiten que el uso de expresiones de filtro descarte los datos.

| INSERMEID (CLAVE DE PARTICIÓN) | Dateadded (clave de clasificación) | Songtitle | Datos |

b. Redacción de artículos
La escritura de artículos en los índices secundarios locales es una operación bastante sencilla. Debe comenzar a especificar un atributo de clave de clasificación junto con su tipo de datos. Asegúrese de que el tipo de cada elemento debe coincidir con su tipo de datos de su esquema clave en caso de que el elemento define un atributo de cualquier clave de índice.

C. Colecciones de artículos en índices secundarios locales
Una colección de artículos en Dynamodb se refiere a un grupo de elementos con un valor clave de partición similar en una tabla y todos sus LSIS. En el siguiente ejemplo, el nombre de la tabla es correspondencias y la clave de partición es el nombre de grupo. El nombre de la segunda tabla es LastEmailIndex pero lleva el mismo nombre de partición que es un nombre de grupo.

Las tablas y los elementos de índice con la clave de partición de nombre de grupo pertenecen a la misma colección de elementos.

Conclusión

Los índices secundarios locales de DynamoDB son ideales para aplicaciones que se benefician de realizar las consultas utilizando claves de clasificación Aternate. Puede crear uno o más LSI por aplicación dependiendo de sus necesidades. Hacen su trabajo más fácil y aumentan su productividad.