Etapa 5: criar um modelo de dados do DynamoDB - AWS Orientação prescritiva

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á.

Etapa 5: criar um modelo de dados do DynamoDB

Defina as chaves de partição para sua tabela base e índices secundários globais (GSIs):

  • Seguindo as melhores práticas de design de chaves, use ComponentId como chave de partição para a tabela base neste exemplo. Por ser único, ComponentId pode oferecer granularidade. O DynamoDB usa o valor de hash da sua chave de partição para determinar a partição em que os dados são armazenados fisicamente. O ID exclusivo do componente gera um valor de hash diferente, o que pode facilitar a distribuição dos dados dentro da tabela. Você pode consultar a tabela base usando uma chave de ComponentId partição.

  • Para encontrar filhos imediatos de um componente, crie um GSI em que ParentId esteja a chave de partição e ComponentId seja a chave de classificação. Você pode consultar esse GSI usando ParentId como chave de partição.

  • Para todos os filhos recursivos de um componente, crie um GSI em que GraphId é a chave de partição, e Path é a chave de classificação. É possível consultar esse GSI usando GraphId como a chave de partição e o operador BEGINS_WITH(Path, "$path") na chave de classificação.

Chave de partição

Chave de classificação

Atributos de mapeamento

Tabela base

ComponentId

ParentId, GraphId, Path

GSI1

ParentId

ComponentId

GSI2

GraphId

Path

ComponentId

Armazenar componentes na tabela

A próxima etapa é armazenar cada componente na tabela base do DynamoDB. Depois de inserir todos os componentes da árvore de exemplo, você obtém a tabela base a seguir.

ComponentId

ParentId

GraphId

Path

 

CM1

 

CM1#1

 

CM1

 

CM2

 

CM1

 

CM1#1

 

CM1|CM2

 

CM3

 

CM1

 

CM1#1

 

CM1|CM3

 

CM4

 

CM2

 

CM1#1

 

CM1|CM2|CM4

 

CM5

 

CM2

 

CM1#1

 

CM1|CM2|CM5

 

CM6

 

CM3

 

CM1#1

 

CM1|CM3|CM6

 

CM7

 

CM3

 

CM1#1

 

CM1|CM3|CM7

 

CM8

 

CM4

 

CM1#1

 

CM1|CM2|CM4|CM8

 

CM9

 

CM4

 

CM1#1

 

CM1|CM2|CM4|CM9

 

CM10

 

CM5

 

CM1#1

 

CM1|CM2|CM5|CM10

O índice GSI1

Para verificar todos os filhos imediatos de um componente, você cria um índice que é usado ParentId como chave de partição e ComponentId como chave de classificação. A tabela dinâmica a seguir representa o índice GSI1. Esse índice pode ser usado para recuperar todos os componentes filhos imediatos por meio de um ID de componente pai. Por exemplo, é possível descobrir quantas baterias estão disponíveis em um carro (CM1) ou quais células estão disponíveis em um módulo (CM4).

ParentId

ComponentId

CM1

CM2

CM3

CM2

CM4

CM5

CM3

CM6

CM7

CM4

CM8

CM9

CM5

CM10

O índice GSI2

A tabela dinâmica a seguir representa o índice GSI2. Ela é configurada usando-se GraphId como uma chave de partição ePath como uma chave de classificação. Usando GraphI d e a begins_with operação na chave de classificação (Path), você pode encontrar a linhagem completa de um componente em uma árvore.

GraphId

Path

ComponentId

CM1#1

CM1

CM1|CM2

CM1|CM3

CM1|CM2|CM4

CM1|CM2|CM5

CM1|CM2|CM4|CM8

CM1|CM2|CM4|CM9

CM1|CM2|CM5|CM10

CM1|CM3|CM6

CM1|CM3|CM7

CM1

CM2

CM3

CM4

CM5

CM8

CM9

CM10

CM6

CM7