Primeiras passos para a modelagem de dados relacionais no DynamoDB - Amazon DynamoDB

Primeiras passos para a modelagem de dados relacionais no DynamoDB

nota

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. Por outro lado, no Amazon DynamoDB, você não deve iniciar o design do seu esquema até saber quais perguntas ele precisará responder. Compreender os problemas de negócios e os casos de uso de aplicativo antecipadamente é absolutamente essencial.

Para iniciar o design de uma tabela do DynamoDB que poderá ser escalada com eficiência, é necessário realizar várias etapas primeiro para identificar os padrões de acesso exigidos pelos sistemas de suporte operacional e administrativo (OSS/BSS) que o design precisa comportar:

  • Para novos aplicativos, analise as histórias dos usuários referentes a atividades e objetivos. Documente os vários casos de uso identificados e analise os padrões de acesso que eles exigem.

  • Para aplicativos existentes, analise os logs de consulta para saber como as pessoas estão usando o sistema atualmente e quais são os principais padrões de acesso.

Após concluir esse processo, você deve encerrar com uma lista que pode ser semelhante à seguinte:

Padrões de acesso para uma aplicação de entrada de pedidos
Número do padrão Padrão de acesso
1 Procurar os detalhes do funcionário por ID do funcionário
2 Consultar detalhes do funcionário por nome do funcionário
3 Encontrar um ou mais números de telefone de um funcionário
4 Encontrar um ou mais números de telefone de um cliente
5 Receber pedidos de clientes dentro do intervalo de datas
6 Mostrar todos os pedidos em aberto dentro do intervalo de datas
7 Ver todos os funcionários contratados recentemente
8 Encontrar todos os funcionários no armazém
9 Obter todos os itens do pedido do produto
10 Obter inventários de produtos em todos os armazéns
11 Obter clientes por representante de conta
12 Obter pedidos por representante de conta
13 Obter funcionários com o cargo
14 Obter inventário por produto e armazém
15 Obter o inventário total de produtos

Em um aplicativo real, sua lista pode ser muito mais longa. Mas essa coleção representa a faixa de complexidade dos padrões de consulta que você pode encontrar em um ambiente de produção.

Uma abordagem moderna de design de esquema do DynamoDB usa princípios de agregação, agrupando dados com base em padrões de acesso em vez de limites rígidos de entidade. Essa abordagem considera vários padrões de design:

  • Design de tabela única: uso de chaves de classificação compostas, índices secundários globais sobrecarregados e padrões de lista de adjacências para vários tipos de entidade em uma única tabela.

  • Design de várias tabelas: uso de tabelas separadas para entidades com características operacionais independentes e baixa correlação de acesso, com GSIs estratégicos para consultas entre entidades.

  • Design agregado: incorporação de dados relacionados quando sempre acessados em conjunto (Order + OrderItems) ou uso de coleção de itens para identificar relações (Product + Inventory).

A escolha entre essas abordagens depende de seus padrões de acesso específicos, das características dos dados e dos requisitos operacionais. Você pode usar esses elementos para estruturar os dados, para que um aplicativo possa recuperar o que for necessário para um determinado padrão de acesso, usando uma única consulta em uma tabela ou um índice.

nota

A escolha entre design de tabela única e de várias tabelas depende de seus requisitos específicos. O design de tabela única funciona bem quando as entidades têm alta correlação de acesso e características operacionais semelhantes. O design de várias tabelas é preferível quando as entidades têm requisitos operacionais independentes e padrões de acesso diferentes ou quando você precisa de limites operacionais claros. O exemplo deste guia demonstra uma abordagem de várias tabelas com agregação e desnormalização estratégicas.

Para usar o NoSQL Workbench para DynamoDB a fim de ajudar a visualizar o design da chave de partição, consulte Criar modelos de dados com o NoSQL Workbench.