Cuando usas Índices Secundarios Locales (LSI) en Amazon DynamoDB, puedes hacer consultas más flexibles que no están limitadas únicamente a las claves primarias. Aquí te explico cómo hacer consultas usando un LSI, y te doy un ejemplo concreto basado en la tabla Music que definiste.
🧠 ¿Qué es un índice secundario local (LSI)?
Un LSI permite consultar datos usando la misma clave de partición (HASH) que la tabla, pero con una clave de ordenamiento secundaria distinta.
🎯 Escenario: Tabla Music con LSI AlbumTitleIndex
Tabla: Music
Clave primaria: Artist (HASH) + SongTitle (RANGE)
LSI: AlbumTitleIndex
- HASH: Artist
- RANGE: AlbumTitle
- Proyección: INCLUDE (Genre, Year)
🔍 Consulta usando AlbumTitleIndex
📘 Objetivo:
Obtener todas las canciones del artista "The Beatles", ordenadas por título del álbum (AlbumTitle), y mostrar el género y el año.
✅ Comando AWS CLI:
aws dynamodb query \
--table-name Music \
--index-name AlbumTitleIndex \
--key-condition-expression "Artist = :artist" \
--expression-attribute-values '{":artist":{"S":"The Beatles"}}' \
--projection-expression "AlbumTitle, Genre, Year"
📝 Notas importantes:
--index-name indica que estás consultando usando un índice (obligatorio).
--key-condition-expression debe usar solo los atributos definidos como claves en ese índice.
- Puedes incluir atributos proyectados como
Genre y Year.