Índices secundários locais do DynamoDB

Índices secundários locais do DynamoDB
Os índices secundários locais do DynamoDB, também conhecidos como LSIS, mantêm cópias ou réplicas de todos ou alguns atributos de tabela. Eles também fornecem teclas de classificação alternativas para chaves de valor de partição. Eles usam teclas de classificação diferentes para organizar seus dados usando as teclas de partição da tabela.

Assim, a criação de um ou vários índices secundários locais fornecem aos seus aplicativos a opção de se beneficiar de teclas de classificação alternativas ao executar as consultas, em vez de depender exclusivamente nas chaves primárias da Table Base. Usando os índices secundários locais eliminam a necessidade de varreduras de tabela inteira, pois você pode simplesmente usar uma chave de classificação para executar consultas rápidas.

Esse recurso torna os índices secundários locais vitais para aplicações que se beneficiariam de chaves de classificação alternativas. Criar um índice secundário local em uma tabela de dynamoDB permite que você emita uma varredura ou consulta contra os índices.

Como criar um índice secundário local em uma tabela de dynamoDB

Antes de criarmos os índices secundários locais, é vital observar que todos os índices secundários locais devem satisfazer as seguintes condições:

  • Tenha uma chave de classificação que contém apenas um único atributo escalar
  • Tenha teclas de partição idênticas e teclas de partição de tabela de origem
  • Projete a chave de classificação da tabela de origem para atuar como um atributo não-chave
  • Tabelas com LSIS têm um sizelimit de até 10 GB por chave de chave de partição
  • LSIS pode compartilhar a taxa de transferência com as tabelas de base

Você deve usar o parâmetro localCondaryIndexes na operação CreateTable para criar um índice secundário local. Geralmente, criar um LSI acontece ao criar uma tabela de dynamoDB. Da mesma forma, a exclusão de uma tabela também remove todos os índices secundários locais na tabela.

Ao criar um LSI, lembre-se de especificar um único atributo não-chave que atua como a chave de classificação para o LSI. O atributo escolhido deve ser um número escalar, string ou binário, pois outros tipos de documentos, tipos escalares e tipos de conjuntos são proibidos. Além disso, você pode projetar convenientemente os atributos como escalares, conjuntos e documentos no seu índice secundário local.

Usando índices secundários locais do DynamoDB

A seguir, alguns dos casos usam para índices secundários locais:

a. Realizando consultas e varreduras
LSIS Ative as diferentes ordens de classificação da mesma lista de itens. Enquanto usam teclas de classificação diferentes, eles sempre têm as mesmas chaves de partição. Por exemplo, uma tabela com o UserID como a chave da partição, SongTitle como a chave de classificação, e Dateadded e dados como outros atributos se parecem com o seguinte:

| UserID (chave de partição) | Songtitle (chave de classificação) | DATADDED | Dados |

A tabela anterior pode responder a perguntas que visam recuperar todas as músicas que são classificadas por nomes para cada usuário, consultando o usuário do usuário. No entanto, recuperar todas as músicas por usuário por data adicionada significa que você recupera todas as músicas e as classifica.

Você ainda pode usar um índice de usuário local com um UserID como a chave da partição e o dado de dados na categoria de teclas de classificação e recuperar instantaneamente as músicas de qualquer usuário que sejam classificadas por data adicionada. Isso ocorre porque as operações de consulta nos índices secundários locais retornam todos os itens que carregam os valores de chave de partição semelhantes sempre que mais de um item compartilham um valor de chave curto.

Novamente, não há ordem específica para que os itens correspondentes venham. Consultas no LSIS usam consistência forte ou eventual. Fortes leads consistentes naturalmente trazem de volta os valores mais recentes.

Por outro lado, as operações de varredura de LSI normalmente retornam todos os dados do índice secundário local. Ao fazer uma varredura, você precisa especificar a tabela e o nome do índice. Além disso, as varreduras permitem o uso de expressões de filtro para descartar os dados.

| UserID (chave de partição) | DATADEDDED (chave de classificação) | SongTitle | Dados |

b. Escrita do item
A escrita de itens em índices secundários locais é uma operação bastante direta. Você precisa começar especificando um atributo de chave de classificação juntamente com seu tipo de dados. Verifique se o tipo de cada item deve corresponder ao seu tipo de dados de seu esquema de chave, caso o item defina um atributo de qualquer chave de índice.

c. Coleções de itens em índices secundários locais
Uma coleção de itens no DynamoDB refere -se a um grupo de itens com um valor de chave de partição semelhante em uma tabela e todo o seu LSIS. No exemplo a seguir, o nome da tabela é correspondência e a chave da partição é o nome do grupo. O nome da segunda tabela é o LastEmailIndex, mas possui o mesmo nome de partição que é o nome do grupo.

As tabelas e itens de índice com a chave de partição do nome do grupo pertencem à mesma coleção de itens.

Conclusão

Os índices secundários locais do DynamoDB são ideais para aplicações que se beneficiam da realização das consultas usando chaves de classificação do Aternate. Você pode criar um ou mais LSIs por aplicativo, dependendo de suas necessidades. Eles facilitam seu trabalho e aumentam sua produtividade.