Estou aprendendo sobre o AWS DynamoDB e algo me confunde. Se uma gravação em uma tabela do DynamoDB implica uma gravação em todos os seus GSIs (porque há várias cópias dos dados para alimentar os diferentes particionamentos), então por que você escolheria uma capacidade de gravação diferente para a tabela "principal" e os GSIs? ? Por que ainda temos a opção de fazer isso?
relate perguntas
-
Adicionar número de série para atividade de cópia ao blob
-
A fonte dinâmica do empacotador duplica artefatos
-
Selecione linhas por grupo com 1s consecutivos
-
Lista de chamada de API de gráfico subscritoSkus estados Privilégios insuficientes enquanto os privilégios são concedidos
-
Função para criar DFs separados com base no valor da coluna
Aqui estão alguns motivos pelos quais a demanda por capacidade de gravação GSI pode ser inferior à capacidade da tabela:
(1) Você aplica o padrão de índice esparso , no qual nem todos os itens da tabela são gravados em um índice:
(2) Seus padrões de consulta de índice não exigem o item inteiro. Nesse caso, você pode escrever ( "project" ) apenas um subconjunto dos atributos de um item no índice. A escolha cuidadosa das projeções pode reduzir potencialmente a demanda por gravações de índices:
Ambas as abordagens aparecem no guia de práticas recomendadas do DynamoDB .
E o caso oposto? @hunterhacker observou um cenário em que um GSI pode precisar de *mais* capacidade do que a tabela: se você tiver muitas operações de atualização que modificam um atributo de chave primária do GSI, mas NÃO os atributos-chave da tabela. Isso precisaria de um delete + insert (2 operações) no índice, mas apenas de uma atualização (1 operação) na tabela.