DynamoDB - índices

O DynamoDB usa índices para atributos de chave primária para melhorar os acessos. Eles aceleram os acessos aos aplicativos e a recuperação de dados e oferecem um melhor desempenho ao reduzir o atraso do aplicativo.

Índice Secundário

Um índice secundário contém um subconjunto de atributos e uma chave alternativa. Você pode usá-lo por meio de uma consulta ou operação de varredura, que tem como alvo o índice.

Seu conteúdo inclui atributos que você projeta ou copia. Na criação, você define uma chave alternativa para o índice e quaisquer atributos que deseja projetar no índice. O DynamoDB então executa uma cópia dos atributos no índice, incluindo atributos de chave primária originados da tabela. Depois de executar essas tarefas, você simplesmente usa uma consulta / varredura como se estivesse executando em uma mesa.

O DynamoDB mantém automaticamente todos os índices secundários. Em operações de item, como adição ou exclusão, ele atualiza todos os índices na tabela de destino.

O DynamoDB oferece dois tipos de índices secundários -

  • Global Secondary Index- Este índice inclui uma chave de partição e uma chave de classificação, que pode ser diferente da tabela de origem. Ele usa o rótulo “global” devido à capacidade de consultas / varreduras no índice para abranger todos os dados da tabela e em todas as partições.

  • Local Secondary Index- Este índice compartilha uma chave de partição com a tabela, mas usa uma chave de classificação diferente. Sua natureza “local” resulta do escopo de todas as suas partições para uma partição de tabela com valor de chave de partição idêntico.

O melhor tipo de índice a ser usado depende das necessidades do aplicativo. Considere as diferenças entre os dois apresentados na tabela a seguir -

Qualidade Índice Secundário Global Índice Secundário Local
Esquema de Chave Ele usa uma chave primária simples ou composta. Ele sempre usa uma chave primária composta.
Chaves de atributo A chave de partição do índice e a chave de classificação podem consistir em string, número ou atributos de tabela binários. A chave de partição do índice é um atributo compartilhado com a chave de partição da tabela. A chave de classificação pode ser string, número ou atributos de tabela binários.
Limites de tamanho por valor da chave de partição Eles não têm limitações de tamanho. Ele impõe um limite máximo de 10 GB no tamanho total dos itens indexados associados a um valor de chave de partição.
Operações de índice online Você pode gerá-los na criação da tabela, adicioná-los a tabelas existentes ou excluir as existentes. Você deve criá-los na criação da tabela, mas não pode excluí-los ou adicioná-los a tabelas existentes.
Consultas Ele permite consultas cobrindo toda a tabela e todas as partições. Eles tratam de partições únicas por meio do valor da chave de partição fornecido na consulta.
Consistência As consultas a esses índices oferecem apenas a opção eventualmente consistente. Consultas desses oferecem as opções de consistência eventual ou consistência forte.
Custo de transferência Inclui configurações de taxa de transferência para leituras e gravações. Consultas / varreduras consomem capacidade do índice, não da tabela, o que também se aplica a atualizações de gravação de tabela. Consultas / varreduras consomem capacidade de leitura da tabela. A tabela grava índices locais de atualização e consome unidades de capacidade da tabela.
Projeção Consultas / varreduras podem solicitar apenas atributos projetados no índice, sem recuperação de atributos da tabela. Consultas / varreduras podem solicitar aqueles atributos não projetados; além disso, ocorrem buscas automáticas deles.

Ao criar várias tabelas com índices secundários, faça isso sequencialmente; o que significa fazer uma mesa e esperar que ela atinja o estado ATIVO antes de criar outra e esperar novamente. O DynamoDB não permite a criação simultânea.

Cada índice secundário requer certas especificações -

  • Type - Especifique local ou global.

  • Name - Usa regras de nomenclatura idênticas às tabelas.

  • Key Schema - Somente string de nível superior, número ou tipo binário são permitidos, com o tipo de índice determinando outros requisitos.

  • Attributes for Projection - O DynamoDB os projeta automaticamente e permite qualquer tipo de dados.

  • Throughput - Especifique a capacidade de leitura / gravação para índices secundários globais.

O limite para índices permanece 5 globais e 5 locais por tabela.

Você pode acessar as informações detalhadas sobre os índices com DescribeTable. Ele retorna o nome, o tamanho e a contagem de itens.

Note - Esses valores são atualizados a cada 6 horas.

Em consultas ou varreduras usadas para acessar dados de índice, forneça os nomes da tabela e do índice, os atributos desejados para o resultado e quaisquer instruções condicionais. O DynamoDB oferece a opção de retornar os resultados em ordem crescente ou decrescente.

Note - A exclusão de uma tabela também exclui todos os índices.