Bewährte Methoden für das Speichern großer Elemente und Attribute 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.

Bewährte Methoden für das Speichern großer Elemente und Attribute in DynamoDB

Amazon DynamoDB begrenzt die Größe jedes Elements, das Sie in einer Tabelle speichern, auf 400 KB (sieheService-, Konto- und Tabellenkontingente in Amazon DynamoDB). Wenn Ihre Anwendung mehr Daten in einem Element speichern muss, als die Größeneinschränkung von DynamoDB zulässt, können Sie versuchen, einzelne oder mehrere große Attribute zu komprimieren oder das Element in mehrere Elemente zu teilen (durch Sortierschlüssel effizient indiziert). Sie können das Element auch als Objekt in Amazon Simple Storage Service (Amazon S3) speichern und die Amazon S3-Objekt-ID in Ihrem DynamoDB-Element speichern.

Als bewährte Methode sollten Sie den ReturnConsumedCapacityParameter beim Schreiben von Elementen verwenden, um Artikelgrößen zu überwachen und Warnmeldungen zu senden, die sich der maximalen Elementgröße von 400 KB nähern. Eine Überschreitung der maximalen Elementgröße führt zu fehlgeschlagenen Schreibversuchen. Durch die Überwachung von Artikelgrößen und Warnmeldungen können Sie Probleme mit der Artikelgröße beheben, bevor sie sich auf Ihre Anwendung auswirken.

Komprimierung großer Attributwerte

Wenn Sie große Attributwerte komprimieren, liegen sie möglicherweise innerhalb der Elementeinschränkungen in DynamoDB und senken Ihre Speicherkosten. Komprimierungsalgorithmen wie GZIP oder LZO erzeugen eine binäre Ausgabe, die Sie dann in einem Binary Attributtyp innerhalb des Elements speichern können.

Stellen Sie sich als Beispiel eine Tabelle vor, in der Nachrichten gespeichert werden, die von Forenbenutzern geschrieben wurden. Solche Nachrichten enthalten oft lange Textfolgen, die für eine Komprimierung in Frage kommen. Durch die Komprimierung können zwar die Elementgrößen reduziert werden, der Nachteil besteht jedoch darin, dass die komprimierten Attributwerte für das Filtern nicht nützlich sind.

Einen Beispielcode, der die Komprimierung solcher Nachrichten in DynamoDB zeigt, finden Sie unter:

Vertikale Partitionierung

Eine alternative Lösung zum Umgang mit großen Elementen besteht darin, sie in kleinere Datenblöcke aufzuteilen und alle relevanten Elemente anhand des Partitionsschlüsselwerts zuzuordnen. Sie können dann eine Sortierschlüsselzeichenfolge verwenden, um die zugehörigen Informationen zu identifizieren, die neben der Zeichenfolge gespeichert sind. Auf diese Weise und wenn Sie mehrere Elemente nach demselben Partitionsschlüsselwert gruppieren, erstellen Sie eine Elementsammlung.

Weitere Informationen zu diesem Ansatz finden Sie unter:

Speichern großer Attributwerte in Amazon S3

Wie bereits erwähnt, können Sie mit Amazon S3 auch große Attributwerte speichern, die nicht in ein DynamoDB-Element passen können. Sie können sie als Objekt in Amazon S3 speichern und dann die Objekt-ID in Ihrem DynamoDB-Element speichern.

Sie können auch die Objektmetadatenunterstützung in Amazon S3 verwenden, um eine Verknüpfung zum übergeordneten Element in DynamoDB bereitzustellen. Speichern Sie den Primärschlüsselwert des Elements als Amazon S3-Metadaten des Objekts in Amazon S3. Dies hilft häufig bei der Wartung der Amazon S3-Objekte.

Betrachten Sie zum Beispiel die Tabelle. ProductCatalog Die Elemente in dieser Tabelle speichern Informationen über Artikelpreise, Beschreibungen, Buchautoren und Abmessungen für andere Produkte. Wenn Sie für die einzelnen Produkte ein Image speichern möchten, das zu groß für die Elemente ist, könnten Sie die Images in Amazon S3 statt in DynamoDB speichern.

Beachten Sie Folgendes, wenn Sie diese Strategie implementieren:

  • DynamoDB unterstützt keine Transaktionen, die über Amazon S3 und DynamoDB ausgeführt werden. Daher muss Ihre Anwendung Fehler behandeln, was auch die Bereinigung verwaister Amazon S3-Objekte umfassen könnte.

  • Amazon S3 begrenzt die Länge von Objekt-IDs. Daher müssen Sie Ihre Daten so organisieren, dass keine übermäßig langen Objektbezeichner generiert werden oder gegen andere Amazon S3-Einschränkungen verstoßen wird.

Weitere Informationen zur Verwendung von Amazon S3 finden Sie im Benutzerhandbuch für den Amazon Simple Storage Service.