Lese- und Schreiboperationen - 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.

Lese- und Schreiboperationen

DynamoDB-Lesevorgänge ermöglichen es Ihnen, ein oder mehrere Elemente aus einer Tabelle abzurufen, indem Sie den Partitionsschlüsselwert und optional den Sortierschlüsselwert angeben. Mithilfe von DynamoDB-Schreiboperationen können Sie Elemente in eine Tabelle einfügen, aktualisieren oder löschen. In diesem Thema wird der Verbrauch von Kapazitätseinheiten für diese beiden Operationen erklärt.

Verbrauch von Kapazitätseinheiten für Lesevorgänge

DynamoDB-Leseanforderungen können entweder stark konsistent, eventuell konsistent oder transaktional sein.

  • Für eine äußerst konsistente Leseanforderung eines Elements mit einer Größe von bis zu 4 KB ist eine Leseeinheit erforderlich.

  • Für eine eventuell konsistente Leseanforderung eines Elements mit einer Größe von bis zu 4 KB ist eine halbe Leseeinheit erforderlich.

  • Eine transaktionale Leseanforderung für ein Element mit einer Größe von bis zu 4 KB erfordert zwei Leseeinheiten.

Weitere Informationen über die DynamoDB-Lesekonsistenzmodelle finden Sie unter Lesekonsistenz.

Elementgrößen für Lesevorgänge werden auf das nächste Vielfache von 4 KB aufgerundet. Beispiel: Das Lesen eines 3 500-Byte-Elements verbraucht den gleichen Durchsatz wie das Lesen eines 4 KB-Elements.

Wenn Sie ein Element lesen müssen, das größer als 4 KB ist, benötigt DynamoDB zusätzliche Leseeinheiten. Die Gesamtzahl der erforderlichen Leseeinheiten hängt von der Größe des Elements ab und davon, ob Sie einen letztlich konsistenten oder stark konsistenten Lesevorgang wünschen. Wenn Ihr Element beispielsweise 8 KB groß ist, benötigen Sie 2 Leseeinheiten, um einen äußerst konsistenten Lesevorgang zu gewährleisten. Sie benötigen 1 Leseeinheit, wenn Sie Eventuell konsistente Lesevorgänge wählen, oder 4 Leseeinheiten für eine transaktionale Leseanforderung.

In der folgenden Liste wird beschrieben, wie DynamoDB-Lesevorgänge Leseeinheiten verbrauchen:

  • GetItem: Liest ein einzelnes Element aus einer Tabelle. Um die Anzahl der Leseeinheiten zu ermitteln, die verbraucht GetItem werden, nehmen Sie die Elementgröße und runden Sie sie auf die nächste 4-KB-Grenze auf. Dies ist die Anzahl der Leseeinheiten, die erforderlich sind, wenn Sie einen stark konsistenten Lesevorgang angegeben haben. Für einen letztlich konsistenten Lesevorgang, was die Standardeinstellung ist, teilen Sie diese Zahl durch zwei.

    Wenn Sie beispielsweise ein Element lesen, das 3,5 KB groß ist, rundet DynamoDB die Elementgröße auf 4 KB. Wenn Sie ein Element von 10 KB lesen, rundet DynamoDB die Elementgröße auf 12 KB.

  • BatchGetItem: Liest bis zu 100 Elemente aus einer oder mehreren Tabellen. DynamoDB verarbeitet jedes Element im Batch als individuelle GetItem Anfrage. DynamoDB rundet zuerst die Größe jedes Elements auf die nächste 4-KB-Grenze auf und berechnet dann die Gesamtgröße. Das Ergebnis entspricht nicht unbedingt der Gesamtgröße aller Elemente. Wenn beispielsweise zwei Elemente mit den Größen 1,5 KB und 6,5 KB BatchGetItem gelesen werden, berechnet DynamoDB die Größe als 12 KB (4 KB + 8 KB). DynamoDB berechnet die Größe nicht als 8 KB (1,5 KB + 6,5 KB).

  • Abfrage: Liest mehrere Elemente mit demselben Partitionsschlüsselwert. Alle zurückgegebenen Elemente werden als ein einziger Lesevorgang behandelt, bei dem DynamoDB die Gesamtgröße aller Elemente berechnet. DynamoDB rundet die Größe dann auf die nächste 4-KB-Grenze auf. Beispiel: Angenommen, Ihre Abfrage gibt 10 Elemente zurück, deren Gesamtgröße 40,8 KB ist. DynamoDB rundet die Elementgröße für den Vorgang auf 44 KB. Wenn eine Abfrage 1 500 Elemente mit jeweils 64 Bytes zurückgibt, ist die kumulative Größe 96 KB.

  • Scan: Liest alle Elemente in einer Tabelle. DynamoDB betrachtet die Größe der Elemente, die geprüft werden und nicht die Größe der Elemente, die von dem Scan zurückgegeben werden. Weitere Informationen zu Scanvorgängen finden Sie unterTabellen in DynamoDB scannen.

Wichtig

Wenn Sie einen Lesevorgang für ein Element ausführen, das nicht existiert, verbraucht DynamoDB trotzdem den Lesedurchsatz, wie oben beschrieben. BeiQuery/Scan-Vorgängen wird Ihnen trotzdem ein zusätzlicher Lesedurchsatz berechnet, der auf der Lesekonsistenz und der Anzahl der Partitionen basiert, die zur Bearbeitung der Anfrage durchsucht wurden, auch wenn keine Daten vorhanden sind.

Für jede Operation, die Elemente zurückgibt, können Sie eine Teilmenge der abzurufenden Attribute anfordern. Allerdings wirkt sich dies nicht auf die Berechnungen der Elementgrößen aus. Darüber hinaus können Query und Scan die Elementanzahl anstatt der Attributwerte zurückgeben. Beim Abrufen der Anzahl der Elemente wird dieselbe Menge an Leseeinheiten verwendet und es werden dieselben Elementgrößen berechnet. Grund hierfür ist, dass DynamoDB jedes Element lesen muss, um die Anzahl erhöhen zu können.

Verbrauch von Kapazitätseinheiten für Schreibvorgänge

Eine Schreibeinheit entspricht einem Schreibvorgang für ein Element mit einer Größe von bis zu 1 KB. Wenn Sie ein Element schreiben müssen, das größer als 1 KB ist, muss DynamoDB zusätzliche Schreibeinheiten verbrauchen. Transaktionale Schreibanforderungen erfordern 2 Schreibeinheiten, um einen Schreibvorgang für Elemente mit bis zu 1 KB durchzuführen. Die Gesamtanzahl der Schreibanforderungseinheiten ist abhängig von der Elementgröße. Wenn Ihr Element beispielsweise 2 KB groß ist, benötigen Sie 2 Schreibeinheiten für eine Schreibanforderung oder 4 Schreibeinheiten für eine transaktionale Schreibanforderung.

Elementgrößen für Schreibvorgänge werden auf die nächsten mehreren 1 KB aufgerundet. Beim Schreiben eines 500-Byte-Elements wird derselbe Durchsatz verbraucht wie beim Schreiben eines 1 KB-Elements.

In der folgenden Liste wird beschrieben, wie DynamoDB-Schreibvorgänge Schreibeinheiten verbrauchen:

  • PutItem: Schreibt ein einzelnes Element in eine Tabelle. Wenn ein Element mit demselben Primärschlüssel in der Tabelle vorhanden ist, ersetzt die Operation das Element. Bei der Berechnung des bereitgestellten Durchsatzes ist die Elementgröße, auf die es ankommt, die größere von beiden.

  • UpdateItem: Ändert ein einzelnes Element in der Tabelle. DynamoDB betrachtet die Größe des Elements vor und nach der Aktualisierung. Der bereitgestellte Durchsatz, der verbraucht wurde, spiegelt die größere dieser Elementgrößen wider. Selbst wenn Sie eine Teilmenge der Attribute des Elements aktualisieren, UpdateItem wird trotzdem der gesamte bereitgestellte Durchsatz verbraucht (je nachdem, welcher Wert der Elementgrößen „Vorher“ und „Nachher“ größer ist).

  • DeleteItem: Entfernt ein einzelnes Element aus einer Tabelle. Der Verbrauch des bereitgestellten Durchsatzes basiert auf der Größe des gelöschten Elements.

  • BatchWriteItem: Schreibt bis zu 25 Elemente in eine oder mehrere Tabellen. DynamoDB verarbeitet jedes Element im Batch als einzelne PutItem oder DeleteItem-Anforderung (Aktualisierungen werden nicht unterstützt). DynamoDB rundet zuerst die Größe jedes Elements auf die nächste Grenze von 1 KB auf und berechnet dann die Gesamtgröße. Das Ergebnis entspricht nicht unbedingt der Gesamtgröße aller Elemente. Wenn beispielsweise zwei Elemente mit den Größen 500 Byte und 3,5 KB BatchWriteItem geschrieben werden, berechnet DynamoDB die Größe als 5 KB (1 KB + 4 KB). DynamoDB berechnet die Größe nicht als 4 KB (500 Byte + 3,5 KB).

Für die Operationen PutItem, UpdateItem und DeleteItem rundet DynamoDB die Elementgröße auf das nächste 1 KB. Wenn Sie z. B. ein 1,6 KB-Element setzen oder löschen, rundet DynamoDB die Elementgröße auf 2 KB auf.

PutItem,UpdateItem, und DeleteItem Operationen ermöglichen bedingte Schreibvorgänge, bei denen Sie einen Ausdruck angeben, der als wahr ausgewertet werden muss, damit der Vorgang erfolgreich ist. Wenn der Ausdruck als falsch ausgewertet wird, verbraucht DynamoDB dennoch Schreibkapazitätseinheiten aus der Tabelle. Die Menge der verbrauchten Schreibkapazitätseinheiten hängt von der Größe des Elements ab. Bei diesem Element kann es sich um ein vorhandenes Element in der Tabelle oder um ein neues Element handeln, das Sie erstellen oder aktualisieren möchten. Nehmen wir zum Beispiel an, dass ein vorhandenes Element 300 KB groß ist. Das neue Element, das Sie erstellen oder aktualisieren möchten, hat eine Größe von 310 KB. Die verbrauchten Schreibkapazitätseinheiten werden für das neue Element 310 KB betragen.