Trabalhar com índices secundários locais no DynamoDB usando a AWS CLI
Você pode usar a AWS CLI para criar uma tabela do Amazon DynamoDB com um ou mais índices secundários locais, descrever os índices na tabela e realizar consultas usando os índices.
Tópicos
Criar uma tabela com um índice secundário local
Os índices secundários locais devem ser criados ao mesmo tempo que uma tabela é criada. Para fazer isso, use o parâmetro create-table
e forneça as especificações para um ou mais índices secundários locais. O exemplo a seguir cria uma tabela (Music
) para armazenar informações sobre músicas em uma coleção de músicas. A chave de partição é Artist
e a chave de classificação é SongTitle
. Um índice secundário, AlbumTitleIndex
, no atributo AlbumTitle
facilita 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\"]}}]"
Você deve aguardar até que o DynamoDB crie a tabela e defina o status dessa tabela como ACTIVE
. Depois disso, você poderá começar a inserir itens de dados na tabela. Você pode usar describe-table para determinar o status da criação da tabela.
Descrever uma tabela com um índice secundário local
Para obter mais informações sobre índices secundários locais em uma tabela, use o parâmetro describe-table
. Para cada índice, você pode acessar seu nome, esquema de chaves e atributos projetados.
aws dynamodb describe-table --table-name Music
Consultar um índice secundário local
Você pode usar a operação query
em um índice secundário local de modo semelhante a como você query
em uma tabela. Você deve especificar o nome do índice, os critérios de consulta da chave de classificação do índice e os atributos que deseja retornar. Neste exemplo, o índice é AlbumTitleIndex
e a chave de classificação do índice é AlbumTitle
.
Os únicos atributos retornados são aqueles que foram projetados no índice. É possível modificar essa consulta para selecionar atributos não chave também, mas isso exigiria atividades de busca de tabela que são relativamente caras. Para obter mais informações sobre buscas de tabela, consulte Projeções de atributo.
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"} }'