Usar índices secundários globais para criar uma réplica final consistente no DynamoDB - Amazon DynamoDB

Usar índices secundários globais para criar uma réplica final consistente no DynamoDB

Você pode usar um índice secundário global para criar uma réplica com consistência final de uma tabela. A criação de uma réplica pode permitir a você:

  • Definir diferentes capacidades de leitura provisionadas para diferentes leitores. Por exemplo, suponha que você tenha duas aplicações: uma lida com consultas de alta prioridade e precisa dos mais altos níveis de performance de leitura, enquanto a outra lida com consultas de baixa prioridade que podem tolerar limitações nas atividades de leitura.

    Se ambas as aplicações forem lidas da mesma tabela, uma carga de leitura intensa da aplicação de baixa prioridade poderá consumir toda a capacidade de leitura disponível para a tabela. Isso aceleraria a atividade de leitura da aplicação de alta prioridade.

    Em vez disso, é possível criar uma réplica por meio de um índice secundário global cuja capacidade de leitura você pode definir separadamente da própria tabela. Em seguida, você pode fazer com que sua aplicação de baixa prioridade consulte a réplica em vez da tabela.

  • Eliminar totalmente as leituras de uma tabela. Por exemplo, talvez você tenha uma aplicação que capta um alto volume de registros de cliques de um site e não queira arriscar que as leituras interfiram nisso. Você pode isolar esta tabela e impedir leituras por outras aplicações (consulte Uso de condições de política do IAM para controle de acesso refinado) ao mesmo tempo que permite que outras aplicações leiam uma réplica criada usando um índice secundário global.

Para criar uma réplica, configure um índice secundário global que tenha o mesmo esquema de chaves que a tabela principal, com alguns (ou todos) os atributos não chaves projetados. Nas aplicações, é possível direcionar parte ou toda a atividade de leitura para esse índice secundário global, em vez de para a tabela principal. Em seguida, você pode ajustar a capacidade de leitura provisionada do índice secundário global para lidar com essas leituras sem alterar a capacidade de leitura provisionada da tabela principal.

Há sempre um breve atraso de propagação entre uma gravação na tabela principal e o momento em que os dados gravados surgem no índice. Em outras palavras, suas aplicações devem levar em conta que a réplica de índice secundário global é final consistente somente com a tabela principal.

Você pode criar várias réplicas do índice secundário global para oferecer suporte a diferentes padrões de leitura. Ao criar as réplicas, projete somente os atributos que cada padrão de leitura realmente requer. Uma aplicação pode então consumir menos capacidade de leitura provisionada para obter apenas os dados necessários, em vez de precisar ler o item da tabela principal. Essa otimização pode resultar em uma economia significativa com o passar do tempo.