Como trabalhar com índices secundários locais: AWS CLI - Amazon DynamoDB

Como trabalhar com índices secundários locais: 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.

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"} }'