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
ComponentIdcomo chave de partição para a tabela base neste exemplo. Por ser único,ComponentIdpode 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. É possível consultar a tabela base usando uma chave de partiçãoComponentId. -
Para encontrar filhos imediatos de um componente, crie um GSI em que
ParentIdé a chave de partição eComponentIdé a chave de classificação. É possível consultar esse GSI usandoParentIdcomo a chave de partição. -
Para todos os filhos recursivos de um componente, crie um GSI em que
GraphIdé a chave de partição, ePathé a chave de classificação. É possível consultar esse GSI usandoGraphIdcomo a chave de partição e o operadorBEGINS_WITH(Path, "$path")na chave de classificação.
Chave de partição |
Chave de classificação |
Atributos de mapeamento |
|
Tabela base |
|
|
|
GSI1 |
|
|
|
GSI2 |
|
|
|
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 seguinte tabela base.
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 | CM1 0 |
O GSI1 índice
Para verificar todos os filhos imediatos de um componente, crie um índice usando ParentId como chave de partição e ComponentId como chave de classificação. A tabela dinâmica a seguir representa o GSI1 índice. Esse índice pode ser usado para recuperar todos os componentes filhos imediatos por meio de um ID de componente pai. Por exemplo, você pode 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 GSI2 índice
A tabela dinâmica a seguir representa o GSI2 índice. Ela é configurada usando-se GraphId como uma chave de partição ePath como uma chave de classificação. Ao usar GraphId e a operação begins_with na chave de classificação (Path), é possível 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 | CM1 0 CM1|CM3|CM6 CM1|CM3|CM7 |
CM1 CM2 CM3 CM4 CM5 CM8 CM9 CM10 CM6 CM7 |