Schritt 5: Erstellen eines DynamoDB-Datenmodells - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schritt 5: Erstellen eines DynamoDB-Datenmodells

Definieren Sie die Partitionsschlüssel für Ihre Basistabelle und globale sekundäre Indizes (GSIs):

  • Verwenden Sie gemäß den wichtigsten bewährten Designmethoden ComponentId als Partitionsschlüssel für die Basistabelle in diesem Beispiel. Da es einzigartig ist, ComponentId kann Granularität bieten. DynamoDB verwendet den Hashwert Ihres Partitionsschlüssels, um die Partition zu ermitteln, auf der die Daten physisch gespeichert sind. Die eindeutige Komponenten-ID generiert einen anderen Hashwert, der die Verteilung der Daten innerhalb der Tabelle erleichtern kann. Sie können die Basistabelle mithilfe eines ComponentId Partitionsschlüssels abfragen.

  • Um unmittelbare untergeordnete Elemente einer Komponente zu finden, erstellen Sie einen GSI, wobei ParentId der Partitionsschlüssel und der Sortierschlüssel ComponentId ist. Sie können diesen GSI abfragen, indem Sie ParentId als Partitionsschlüssel verwenden.

  • Um alle rekursiven einer Komponente zu finden, erstellen Sie eine GSI, wobei GraphId der Partitionsschlüssel ist und Path der Sortierschlüssel ist. Sie können diesen GSI abfragen, indem Sie GraphId als Partitionsschlüssel und den BEGINS_WITH(Path, "$path")-Operator auf dem Sortierschlüssel verwenden.

Partitionsschlüssel

Sortierschlüssel

Zuordnungsattribute

Basistabelle

ComponentId

ParentId, GraphId, Path

GSI1

ParentId

ComponentId

GSI2

GraphId

Path

ComponentId

Speichern von Komponenten in der Tabelle

Der nächste Schritt besteht darin, jede Komponente in der DynamoDB-Basistabelle zu speichern. Nachdem Sie alle Komponenten aus dem Beispielbaum eingefügt haben, erhalten Sie die folgende Basistabelle.

ComponentId

ParentId

GraphId

Pfad

 

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

Der GSI1-Index

Um alle unmittelbar untergeordneten Elemente einer Komponente zu überprüfen, erstellen Sie einen Index, der ParentId als Partitionsschlüssel und ComponentId als Sortierschlüssel verwendet. Die folgende Pivot-Tabelle stellt den GSI1-Index dar. Sie können diesen Index verwenden, um alle unmittelbar untergeordneten Komponenten mithilfe einer übergeordneten Komponenten-ID abzurufen. Sie können beispielsweise herausfinden, wie viele Batterien in einem Auto verfügbar sind (CM1) oder welche Zellen in einem Modul (CM4) verfügbar sind.

ParentId

ComponentId

CM1

CM2

CM3

CM2

CM4

CM5

CM3

CM6

CM7

CM4

CM8

CM9

CM5

CM10

Der GSI2-Index

Die folgende Pivot-Tabelle stellt den GSI2-Index dar. Sie ist mit GraphId als Partitionsschlüssel und Path als Sortierschlüssel konfiguriert. Mithilfe von GraphId und der -begins_withOperation für den Sortierschlüssel (Path) können Sie die vollständige Herkunft einer Komponente in einem Baum finden.

GraphId

Pfad

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