Uso de índices secundarios locales en la AWS CLI de DynamoDB
Puede usar la AWS CLI para crear una tabla de Amazon DynamoDB con uno o más índices secundarios locales, describir los índices de la tabla y utilizarlos para realizar consultas.
Temas
Creación de una tabla con un índice secundario local
Los índices secundarios locales se deben crear al mismo tiempo que la tabla. Para ello, use el parámetro create-table
y proporcione las especificaciones para uno o más índices secundarios locales. En el ejemplo siguiente, se crea una tabla (Music
) para contener información sobre las canciones de una colección de música. La clave de partición es Artist
y la de ordenación, SongTitle
. Un índice secundario AlbumTitleIndex
en el atributo AlbumTitle
facilita las consultas por título de álbum.
aws dynamodb create-table \ --table-name Music \ --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \ AttributeName=AlbumTitle,AttributeType=S \ --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5 \ --local-secondary-indexes \ "[{\"IndexName\": \"AlbumTitleIndex\", \"KeySchema\":[{\"AttributeName\":\"Artist\",\"KeyType\":\"HASH\"}, {\"AttributeName\":\"AlbumTitle\",\"KeyType\":\"RANGE\"}], \"Projection\":{\"ProjectionType\":\"INCLUDE\", \"NonKeyAttributes\":[\"Genre\", \"Year\"]}}]"
Debe esperar hasta que DynamoDB cree la tabla y establezca el estado de esta última en ACTIVE
. A partir de ese momento, puede comenzar a incluir elementos de datos en la tabla. Puede utilizar describe-table Para determinar el estado de la creación de tablas.
Descripción de una tabla con un índice secundario local
Para obtener información acerca de los índices secundarios locales en una tabla, utilice el parámetro describe-table
. Para cada índice, puede obtener acceso a su nombre, esquema de claves y atributos proyectados.
aws dynamodb describe-table --table-name Music
Consulta de un índice secundario local
Puede usar la operación query
en un índice secundario local de un modo bastante parecido a como query
se usa en una tabla. Debe especificar el nombre del índice, los criterios de consulta de la clave de ordenación del índice y los atributos que desea devolver. En este ejemplo, el índice es AlbumTitleIndex
y la clave de ordenación del índice es AlbumTitle
.
Los únicos atributos devueltos son aquellos que se han proyectado en el índice. Puede modificar esta consulta de modo que también seleccione atributos sin clave, pero esto requeriría realizar actividad de recuperación en la tabla, lo que resulta relativamente costoso. Para obtener más información sobre recuperaciones de tablas, consulte Proyecciones de atributos.
aws dynamodb query \ --table-name Music \ --index-name AlbumTitleIndex \ --key-condition-expression "Artist = :v_artist and AlbumTitle = :v_title" \ --expression-attribute-values '{":v_artist":{"S":"Acme Band"},":v_title":{"S":"Songs About Life"} }'