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.