Fase 5: Creare un modello di dati DynamoDB - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Fase 5: Creare un modello di dati DynamoDB

Definite le chiavi di partizione per la tabella di base e gli indici secondari globali (GSI):

  • Seguendo le migliori pratiche di progettazione chiave, utilizzate ComponentId come chiave di partizione per la tabella di base in questo esempio. Poiché è unica, ComponentId può offrire granularità. DynamoDB utilizza il valore hash della chiave di partizione per determinare la partizione in cui i dati vengono archiviati fisicamente. L'ID univoco del componente genera un valore hash diverso, che può facilitare la distribuzione dei dati all'interno della tabella. È possibile interrogare la tabella di base utilizzando una chiave di ComponentId partizione.

  • Per trovare i figli immediati di un componente, crea un GSI in cui si ParentId trova la chiave di partizione e ComponentId la chiave di ordinamento. È possibile interrogare questo GSI utilizzandolo ParentId come chiave di partizione.

  • Per trovare tutti i figli ricorrenti di un componente, crea un GSI dove GraphId è la chiave di partizione, e Path è la chiave di ordinamento. Puoi eseguire query su questo GSI utilizzando GraphId come chiave di partizione e l'operatore BEGINS_WITH(Path, "$path") sulla chiave di ordinamento.

Chiave di partizione

Chiave di ordinamento

Attributi di mappatura

Tabella di base

ComponentId

ParentId, GraphId, Path

GSI1

ParentId

ComponentId

GSI2

GraphId

Path

ComponentId

Archiviazione dei componenti nella tabella

Il passaggio successivo consiste nell'archiviare ogni componente nella tabella di base di DynamoDB. Dopo aver inserito tutti i componenti dall'albero di esempio, si ottiene la seguente tabella di 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|CM10

L'indice GSI1

Per controllare tutti i figli immediati di un componente, create un indice da utilizzare ParentId come chiave di partizione e ComponentId come chiave di ordinamento. La seguente tabella pivot rappresenta l'indice GSI1. Puoi utilizzare questo indice per recuperare tutti i componenti figlio immediati utilizzando un ID del componente principale. Ad esempio, puoi scoprire quante batterie sono disponibili in un'automobile (CM1) o quali celle sono disponibili in un modulo (CM4).

ParentId

ComponentId

CM1

CM2

CM3

CM2

CM4

CM5

CM3

CM6

CM7

CM4

CM8

CM9

CM5

CM10

L'indice GSI2

La seguente tabella pivot rappresenta l'indice GSI2. È configurato utilizzando GraphId come chiave di partizione e Path come chiave di ordinamento. Usando GraphI d e l'begins_withoperazione sulla chiave di ordinamento (Path), puoi trovare la discendenza completa di un componente in un albero.

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