DynamoDB - Melhores Práticas

Certas práticas otimizam o código, evitam erros e minimizam o custo de transferência ao trabalhar com várias fontes e elementos.

A seguir estão algumas das melhores práticas mais importantes e comumente usadas no DynamoDB.

Mesas

A distribuição de tabelas significa que as melhores abordagens distribuem a atividade de leitura / gravação de maneira uniforme em todos os itens da tabela.

Tenha como objetivo o acesso uniforme aos dados nos itens da tabela. O uso ideal da taxa de transferência depende da seleção da chave primária e dos padrões de carga de trabalho do item. Distribua a carga de trabalho uniformemente entre os valores de chave de partição. Evite coisas como uma pequena quantidade de valores de chave de partição muito usados. Opte por opções melhores, como grandes quantidades de valores de chave de partição distintos.

Compreenda o comportamento da partição. Estimar partições alocadas automaticamente pelo DynamoDB.

O DynamoDB oferece uso de taxa de transferência intermitente, que reserva taxa de transferência não utilizada para “explosões” de energia. Evite o uso pesado dessa opção porque os bursts consomem grandes quantidades de throughput rapidamente; além disso, não é um recurso confiável.

Em uploads, distribua os dados para obter um melhor desempenho. Implemente isso fazendo upload para todos os servidores alocados simultaneamente.

Armazene itens usados ​​com frequência para descarregar a atividade de leitura no cache em vez de no banco de dados.

Itens

Custos de limitação, desempenho, tamanho e acesso continuam sendo as maiores preocupações com os itens. Opte por tabelas um-para-muitos. Remova os atributos e divida as tabelas para corresponder aos padrões de acesso. Você pode melhorar a eficiência drasticamente por meio dessa abordagem simples.

Comprima grandes valores antes de armazená-los. Utilize ferramentas de compressão padrão. Use armazenamento alternativo para grandes valores de atributos, como S3. Você pode armazenar o objeto no S3 e um identificador no item.

Distribua grandes atributos em vários itens por meio de peças de itens virtuais. Isso fornece uma solução alternativa para as limitações de tamanho do item.

Consultas e varreduras

Consultas e varreduras sofrem principalmente de desafios de consumo de taxa de transferência. Evite rajadas, que normalmente resultam de coisas como mudar para uma leitura fortemente consistente. Use varreduras paralelas com poucos recursos (ou seja, função de segundo plano sem limitação). Além disso, use-os apenas com tabelas grandes, e as situações em que você não utiliza totalmente o rendimento ou as operações de varredura oferecem baixo desempenho.

Índices Secundários Locais

Os índices apresentam problemas nas áreas de custos de processamento e armazenamento e na eficiência das consultas. Evite indexar, a menos que você consulte os atributos com frequência. Nas projeções, escolha com sabedoria porque incham os índices. Selecione apenas aqueles muito usados.

Utilize índices esparsos, ou seja, índices nos quais as chaves de classificação não aparecem em todos os itens da tabela. Eles beneficiam as consultas sobre atributos não presentes na maioria dos itens da tabela.

Preste atenção na expansão da coleção de itens (todos os itens da tabela e seus índices). As operações de adicionar / atualizar fazem com que as tabelas e os índices aumentem e 10 GB permanece o limite para coleções.

Índices Secundários Globais

Os índices apresentam problemas nas áreas de custos de processamento e armazenamento e na eficiência das consultas. Opte por distribuição de atributos-chave, que, como distribuição de leitura / gravação em tabelas, fornece uniformidade de carga de trabalho. Escolha atributos que distribuem dados uniformemente. Além disso, utilize índices esparsos.

Explore índices secundários globais para pesquisas rápidas em consultas que solicitam uma quantidade modesta de dados.