Erste Schritte für die Modellierung relationaler Daten in DynamoDB - Amazon DynamoDB

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.

Erste Schritte für die Modellierung relationaler Daten in DynamoDB

Anmerkung

Das NoSQL-Design erfordert einen anderen Ansatz als das RDBMS-Design. Sie können ein standardisiertes Datenmodell für ein RDBMS entwickeln, ohne sich Gedanken über Zugriffsmuster machen zu müssen. Anschließend können Sie es erweitern, wenn neue Fragen und Abfrageanforderungen entstehen. Im Fall von Amazon DynamoDB sollten Sie jedoch nicht mit der Entwicklung Ihres Schemas beginnen, bis Sie die Fragen kennen, die es beantworten können muss. Es ist daher äußerst wichtig, die Business-Probleme und Anwendungsfälle vor der Entwicklung des Schemas zu kennen.

Um mit dem Entwerfen einer DynamoDB-Tabelle zu beginnen, die effizient skaliert werden kann, müssen Sie zunächst mehrere Schritte ausführen, um die Zugriffsmuster zu identifizieren, die von den Betriebs- und Geschäftsunterstützungssystemen (OSS/BSS) benötigt werden, die unterstützt werden müssen:

  • Im Fall neuer Anwendungen sollten Sie Berichte von Benutzern zu Aktivitäten und Zielen prüfen. Dokumentieren Sie die von Ihnen identifizierten Anwendungsfälle und analysieren Sie die von diesen benötigten Zugriffsmuster.

  • Analysieren Sie im Fall vorhandener Anwendungen die Abfrageprotokolle, um festzustellen, wie das System zurzeit verwendet wird und was die wichtigsten Zugriffsmuster sind.

Nach dem Abschluss dieses Vorgangs sollten Sie über eine Liste verfügen, die ungefähr wie die folgende aussieht.

Zugriffsmuster für die Anwendung zur Auftragserfassung
Muster # Beschreibung des Zugriffsmusters
1 Suchen von Mitarbeiterdetails nach Mitarbeiter-ID
2 Mitarbeiterdetails nach Mitarbeiternamen abfragen
3 Finden Sie die Telefonnummer (n) eines Mitarbeiters
4 Finden Sie die Telefonnummer (n) eines Kunden
5 Bestellungen für Kunden innerhalb des Datumsbereichs abrufen
6 Alle offenen Bestellungen innerhalb des Datumsbereichs anzeigen
7 Alle kürzlich eingestellten Mitarbeiter anzeigen
8 Finden Sie alle Mitarbeiter im Warehouse
9 Holen Sie sich alle Artikel auf Bestellung für das Produkt
10 Besorgen Sie sich Inventare für das Produkt in allen Lagern
11 Holen Sie sich Kunden nach Kundenbetreuern
12 Bestellungen nach Kundenbetreuern abrufen
13 Holen Sie sich Mitarbeiter mit Berufsbezeichnung
14 Holen Sie sich den Lagerbestand nach Produkt und Lager
15 Holen Sie sich den gesamten Produktbestand

In einer echten Anwendung könnte Ihre Liste sehr viel länger sein. Diese Liste ist jedoch beispielhaft für die Komplexität der Abfragemuster, denen Sie in einer Produktionsumgebung begegnen können.

Ein moderner Ansatz für das DynamoDB-Schemadesign verwendet aggregationsorientierte Prinzipien, bei denen Daten auf der Grundlage von Zugriffsmustern und nicht auf starren Entitätsgrenzen gruppiert werden. Bei diesem Ansatz werden mehrere Entwurfsmuster berücksichtigt:

  • Einzeltabellendesign — Verwendung zusammengesetzter Sortierschlüssel, überladener globaler Sekundärindizes und Adjazenzlistenmuster zum Speichern mehrerer Entitätstypen in einer Tabelle

  • Design mit mehreren Tabellen — Verwendung separater Tabellen für Entitäten mit unabhängigen Betriebsmerkmalen und geringer Zugriffskorrelation, strategisch wichtig für entitätsübergreifende Abfragen GSIs

  • Aggregiertes Design — Einbetten verwandter Daten, wenn sie immer gemeinsam abgerufen werden (Bestellung + OrderItems), oder Verwendung von Artikelsammlungen zur Identifizierung von Beziehungen (Produkt + Inventar)

Die Wahl zwischen diesen Ansätzen hängt von Ihren spezifischen Zugriffsmustern, Datenmerkmalen und betrieblichen Anforderungen ab. Sie können diese Elemente verwenden, um die Daten so zu strukturieren, dass eine Anwendung mittels einer einzigen Abfrage für eine Tabelle oder einen Index alle für ein bestimmtes Zugriffsmuster benötigten Informationen abrufen kann.

Anmerkung

Die Wahl zwischen Einzeltabellendesign und Mehrtabellendesign hängt von Ihren spezifischen Anforderungen ab. Das Design mit einer Tabelle eignet sich gut, wenn Entitäten eine hohe Zugriffskorrelation und ähnliche Betriebsmerkmale aufweisen. Das Design mit mehreren Tabellen wird bevorzugt, wenn Entitäten unabhängige betriebliche Anforderungen haben, unterschiedliche Zugriffsmuster haben oder wenn Sie klare betriebliche Grenzen benötigen. Das Beispiel in diesem Leitfaden veranschaulicht einen Ansatz mit mehreren Tabellen mit strategischer Aggregation und Denormalisierung.

Informationen zur Verwendung von NoSQL Workbench für DynamoDB zur Visualisierung Ihres Partitionsschlüsseldesigns finden Sie unter Erstellen von Datenmodellen mit NoSQL Workbench.