Práticas recomendadas para armazenar itens e atributos grandes - Amazon DynamoDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Práticas recomendadas para armazenar itens e atributos grandes

O Amazon DynamoDB limita o tamanho de cada item que você armazena em uma tabela a 400 KB (consulte). Service quotas, conta e cotas de tabela no Amazon DynamoDB Se a aplicação precisa armazenar mais dados em um item do que o limite de tamanho permitido pelo DynamoDB, você poderá tentar compactar um ou mais atributos grandes ou dividir o item em vários itens (indexados devidamente por chaves de classificação). Você pode armazenar o item como um objeto no Amazon Simple Storage Service (Amazon S3) e armazenar o identificador do objeto do Amazon S3 no item do DynamoDB.

Como prática recomendada, você deve utilizar o ReturnConsumedCapacityparâmetro ao escrever itens para monitorar e alertar sobre tamanhos de itens que se aproximam do tamanho máximo de 400 KB. Exceder o tamanho máximo do item resultará em tentativas de gravação malsucedidas. O monitoramento e os alertas sobre os tamanhos dos itens permitirão que você reduza os problemas de tamanho dos itens antes que eles afetem seu aplicativo.

Compactar valores de atributos grandes

A compactação de valores de atributos grandes pode permitir que eles se ajustem aos limites do item no DynamoDB e reduzam os custos de armazenamento. Algoritmos de compactação, como GZIP ou LZO, produzem uma saída binária que você pode armazenar em um tipo de Binary atributo dentro do item.

Como exemplo, considere uma tabela que armazena mensagens escritas por usuários do fórum. Essas mensagens geralmente contêm longas sequências de texto, que são candidatas à compressão. Embora a compactação possa reduzir o tamanho dos itens, a desvantagem é que os valores dos atributos compactados não são úteis para filtragem.

Para obter um código de exemplo que demonstra como compactar essas mensagens no DynamoDB, consulte:

Particionamento vertical

Uma solução alternativa para lidar com itens grandes é dividi-los em blocos menores de dados e associar todos os itens relevantes pelo valor da chave de partição. Em seguida, você pode usar uma string de chave de classificação para identificar as informações associadas armazenadas ao lado dela. Ao fazer isso e ter vários itens agrupados pelo mesmo valor de chave de partição, você está criando uma coleção de itens.

Para obter mais informações sobre essa abordagem, consulte:

Armazenar valores de atributos grandes no Amazon S3

Conforme já mencionado, você também pode usar o Amazon S3 para armazenar valores de atributos grandes que não podem caber em um item do DynamoDB. Você pode armazená-los como um objeto no Amazon S3 e armazenar o identificador de objeto no item do DynamoDB.

Você também pode usar o suporte de metadados do objeto no Amazon S3 para fornecer um link para o item pai no DynamoDB. Armazene o valor da chave primária do item como metadados de objeto do Amazon S3 no Amazon S3. Fazer isso normalmente ajuda com a manutenção de objetos do Amazon S3.

Por exemplo, considere a tabela ProductCatalog na seção Criar tabelas e carregar dados para exemplos de código no DynamoDB. Os itens nessa tabela armazenam informações sobre preço do item, descrição, autores de livros e dimensões para outros produtos. Se você quisesse armazenar uma imagem de cada produto muito grande para se ajustar em um item, poderia armazenar as imagens no Amazon S3, em vez de no DynamoDB.

Ao implementar essa estratégia, lembre-se sempre do seguinte:

  • O DynamoDB não oferece suporte a transações que cruzam o Amazon S3 e o DynamoDB. Portanto, sua aplicação deve lidar com quaisquer falhas, o que poderia incluir a limpeza de objetos órfãos do Amazon S3.

  • O Amazon S3 limita o tamanho dos identificadores de objetos. Então, você deve organizar seus dados de um modo que não permita a geração excessiva de identificadores de objeto nem viole outras restrições do Amazon S3.

Para obter mais informações sobre como usar o Amazon S3, consulte o Guia do usuário do Amazon Simple Storage Service.