Modelagem de dados para tabelas do DynamoDB - Amazon DynamoDB

Modelagem de dados para tabelas do DynamoDB

Antes de nos aprofundarmos na modelagem de dados, é importante entender alguns fundamentos do DynamoDB. O DynamoDB é um banco de dados NoSQL de chave-valor que permite um esquema flexível. O conjunto de atributos de dados, além dos atributos de chave de cada item, pode ser uniforme ou distinto. O esquema de chaves do DynamoDB está na forma de uma chave primária simples, em que uma chave de partição identifica exclusivamente um item, ou na forma de uma chave primária composta, em que uma combinação de chave de partição e chave de classificação define exclusivamente um item. A chave de partição é em hash para determinar a localização física dos dados e recuperá-los. Portanto, é importante escolher um atributo de alta cardinalidade e escalável horizontalmente como chave de partição para garantir uma distribuição uniforme dos dados. O atributo de chave de classificação é opcional no esquema de chaves, e ter uma chave de classificação permite modelar relações de um para muitos e criar coleções de itens no DynamoDB. As chaves de classificação, também são chamadas de chaves de intervalo, são usadas para classificar itens em uma coleção de itens e também permitem operações flexíveis baseadas em intervalos.

Para ver mais detalhes e conhecer as práticas recomendadas sobre o esquema de chaves do DynamoDB, você pode consultar o seguinte:

Os índices secundários geralmente são necessários para oferecer compatibilidade com padrões de consulta adicionais no DynamoDB. Eles são tabelas de sombra em que os mesmos dados são organizados por meio de um esquema de chaves diferente em comparação com a tabela base. Um índice secundário local (LSI) compartilha a mesma chave de partição da tabela base e permite ter uma chave de classificação alternativa, o que possibilita que ele compartilhe a capacidade da tabela base. Um índice secundário global (GSI) pode ter uma chave de partição diferente, bem como um atributo de chave de classificação diferente da tabela base, o que significa que o gerenciamento de throughput de um GSI é independente da tabela base.

Para ver mais detalhes sobre índices secundários e conhecer as práticas recomendadas, você pode consultar o seguinte:

Vamos analisar a modelagem de dados um pouco mais de perto. A criação de um esquema flexível e altamente otimizado no DynamoDB, ou em qualquer banco de dados NoSQL, pode ser uma habilidade difícil de aprender. O objetivo deste módulo é ajudar você a desenvolver um fluxograma mental para criar um esquema que conduza você do caso de uso à produção. Começaremos com uma introdução à escolha básica de qualquer design: uma única tabela versus várias tabelas. Em seguida, analisaremos a variedade de padrões de design (componentes básicos) que podem ser usados para obter vários resultados organizacionais ou de performance para sua aplicação. Por fim, estamos incluindo uma variedade de pacotes completos de design de esquemas para diferentes casos de uso e setores.

Imagem mostrando a relação conceitual entre os dados, os componentes abaixo deles e a base sob os componentes.