Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Design em NoSQL para DynamoDB

Modo de foco
Design em NoSQL para DynamoDB - Amazon DynamoDB

Os sistemas de bancos de dados NoSQL, como o Amazon DynamoDB, usam os modelos alternativos para o gerenciamento de dados, como pares de chave-valor ou armazenamento de documentos. Ao mudar de um sistema de gerenciamento de bancos de dados relacionais para um sistema de banco de dados NoSQL como o DynamoDB, é importante compreender as principais diferenças e as abordagens específicas de design.

Diferenças entre design relacional de dados e NoSQL

Os sistemas de bancos de dados relacionais (RDBMS) e os bancos de dados NoSQL têm diferentes pontos fortes e fracos:

  • No RDBMS, as consultas de dados são flexíveis, mas têm um custo relativamente alto e não escalam com facilidade em situações de grande volume de tráfego (consulte Primeiras passos para a modelagem de dados relacionais no DynamoDB).

  • Em um banco de dados NoSQL como o DynamoDB, há formas limitadas de consultar dados com eficiência. As demais formas de consulta podem apresentar alto custo e baixa performance.

Essas diferenças tornam o design de banco de dados diferente entre os dois sistemas:

  • Em RDBMS, você cria o design para obter flexibilidade sem se preocupar com detalhes de implementação ou desempenho. A otimização de consultas geralmente não afeta o design do esquema, mas a normalização é importante.

  • No DynamoDB, você deve projetar o esquema especificamente para fazer as consultas mais comuns e importantes do modo mais rápido e barato possível. Suas estruturas de dados são adaptadas aos requisitos específicos de seus casos de uso de negócios.

Dois conceitos-chave para design em NoSQL

O design do NoSQL exige uma visão diferente daquela no design do RDBMS. Para um RDBMS, você pode criar um modelo de dados normalizado sem pensar nos padrões de acesso. Você poderá estendê-lo posteriormente quando surgirem novas perguntas e requisitos de consulta. Você pode organizar cada tipo de dados em sua própria tabela.

Como o design de NoSQL é diferente
  • De forma contrastante, você não deve começar a projetar o esquema do DynamoDB até saber a quais perguntas ele precisará responder. É essencial compreender os problemas de negócios e os casos de uso de aplicativo antecipadamente.

  • Você deve manter o mínimo de tabelas possível em uma aplicação do DynamoDB. Com menos tabelas, há mais escalabilidade, menos gerenciamento de permissões e menor sobrecarga para o DynamoDB. Isso também pode ajudar a manter os custos de backup mais baixos em geral.

Abordar o design em NoSQL

A primeira etapa ao projetar a aplicação do DynamoDB é identificar os padrões específicos de consulta aos quais o sistema deve atender.

Especificamente, é importante compreender três propriedades fundamentais de padrões de acesso de seu aplicativo antes de começar:

  • Tamanho de dados: saber o volume de dados que serão armazenados e solicitados ao mesmo tempo ajudará a determinar a maneira mais eficiente de particionar os dados.

  • Forma dos dados: em vez de remodelar dados quando uma consulta é processada (como um sistema RDBMS faz), um banco de dados NoSQL organiza os dados para que sua forma no banco de dados corresponda ao que será consultado. Esse é um fator importante no aumento da velocidade e da escalabilidade.

  • Velocidade dos dados: o DynamoDB é escalado aumentando-se o número de partições físicas que estão disponíveis para processar consultas e distribuindo-se os dados com eficiência entre essas partições. Saber antecipadamente qual é o pico das cargas de consulta pode ajudar a determinar como particionar os dados para melhor utilizar a capacidade de E/S.

Após identificar os requisitos específicos da consulta, você pode organizar dados de acordo com os princípios gerais que regem o desempenho:

  • Mantenha os dados relacionados juntos.   Pesquisas demonstram que o princípio de “localidade de referência” (manter os dados relacionados em um só lugar), há muitos anos considerado importante para otimizar tabelas de roteamento, é um fator fundamental para melhorar a performance e os tempos de resposta em sistemas NoSQL.

    Como regra geral, você deve manter o mínimo de tabelas possível em uma aplicação do DynamoDB.

    As exceções são os casos que envolvem dados de séries temporais de alto volume ou conjuntos de dados que têm padrões muito diferentes de acesso. Uma única tabela com índices invertidos pode normalmente habilitar consultas simples para criar e recuperar estruturas de dados hierárquicas e complexas, exigidas pelo aplicativo.

  • Use a ordem de classificação.   Os itens relacionados podem ser agrupados juntos e consultados de modo eficiente se o design da chave fizer com que sejam classificados juntos. Essa é uma estratégia importante de design do NoSQL.

  • Distribua as consultas.   Também é importante que um alto volume de consultas não se concentre em uma parte do banco de dados, onde podem exceder a capacidade de E/S. Em vez disso, você deve projetar chaves de dados para distribuir o tráfego entre as partições do modo mais uniforme possível, evitando hotspots.

  • Use índices secundários globais.   Ao criar índices secundários globais específicos, você pode permitir consultas diferentes daquelas aceitas na tabela principal, que sejam rápidas e relativamente econômicas.

Esses princípios gerais traduzem-se em alguns padrões comuns de design que você pode usar para modelar dados no DynamoDB com eficiência.

NoSQL Workbench para DynamoDB

NoSQL Workbench para DynamoDB é uma aplicação GUI multiplataforma do lado do cliente para operações e desenvolvimento de bancos de dados modernos. Ele está disponível para Windows, macOS e Linux. O NoSQL Workbench é uma ferramenta de desenvolvimento visual que fornece recursos de modelagem de dados, visualização de dados, geração de dados de amostra e desenvolvimento de consultas para ajudar você a projetar, criar, consultar e gerenciar tabelas do DynamoDB. Com o NoSQL Workbench para DynamoDB, você pode criar novos modelos de dados a partir de ou projetar modelos com base em modelos de dados existentes que satisfaçam os padrões de acesso a dados das suas aplicações. Pode também importar e exportar o modelo de dados designado no final do processo. Para ter mais informações, consulte Criar modelos de dados com o NoSQL Workbench.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.