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 Schreibvorgänge in DynamoDB
DynamoDB-Leseoperationen 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-Schreibvorgänge 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.
Themen
Verbrauch der Kapazitätseinheit für Leseoperationen
DynamoDB-Leseanforderungen können entweder stark konsistent, eventuell konsistent oder transaktional sein.
-
Die Anforderung eines strikt konsistenten Lesevorgangs für ein Element bis zu 4 KB verbraucht eine Leseeinheit.
-
Die Anforderung eines letztendlich konsistenten Lesevorgangs für ein Element bis 4 KB verbraucht eine halbe Leseeinheit.
-
Die Anforderung eines transaktionalen Lesevorgang für ein Element bis 4 KB verbraucht zwei Leseeinheiten.
Weitere Informationen über die DynamoDB-Lesekonsistenzmodelle finden Sie unter DynamoDB-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 ein Element gelesen werden soll, das größer als 4 KB ist, verbraucht DynamoDB zusätzliche Leseeinheiten. Die Gesamtanzahl der erforderlichen Leseeinheiten ist von der Elementgröße und davon abhängig, ob Sie einen letztendlich konsistenten oder strikt konsistenten Lesevorgang benötigen. Wenn Ihr Element beispielsweise 8 KB groß ist, benötigen Sie 2 Leseeinheiten, um einen strikt konsistenten Lesevorgang zu gewährleisten. Sie benötigen nur 1 Leseeinheit, wenn Sie letzendlich 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 einzelne Elemente einer Tabelle. Um die Anzahl der Kapazitätseinheiten zu bestimmen, die
GetItemverbrauchen wird, nehmen Sie die Elementgröße und runden sie auf den nächsten 4 KB-Grenzwert auf. Wenn Sie einen strikt konsistenter Lesevorgang angegeben haben, ist dies die Anzahl der erforderlichen Leseeinheiten. Teilen Sie diese Zahl für einen letzendlich konsistenten Lesevorgang (Standard) 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 Stapel als eine individuelle
GetItem-Anforderung. DynamoDB rundet zunächst die Größe jedes Elements auf den nächsten 4 KB-Grenzwert auf und berechnet dann die Gesamtgröße. Das Ergebnis ist nicht unbedingt dasselbe wie die Gesamtgröße aller Elemente. Wenn beispielsweise zwei Elemente mit den Größen 1,5 KB und 6,5 KB vonBatchGetItemgelesen werden, berechnet DynamoDB die Größe als 12 KB (4 KB + 8 KB). DynamoDB berechnet die Größe also nicht als 8 KB (1,5 KB + 6,5 KB). -
Query: Liest mehrere Elemente, die denselben Partitionsschlüsselwert haben. Alle zurückgegebenen Elemente werden als ein einzelner Lesevorgang behandelt, wobei DynamoDB die Gesamtgröße aller Elemente berechnet. Anschließend rundet DynamoDB die Größe auf den nächsten 4 KB-Grenzwert 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 Scan-Operationen finden Sie unter Scannen von Tabellen in DynamoDB.
Wichtig
Wenn Sie einen Lesevorgang für ein Element ausführen, das nicht vorhanden ist, verbraucht DynamoDB trotzdem den Lesedurchsatz wie oben beschrieben. Bei Query/Scan-Operationen wird Ihnen trotzdem zusätzlicher Lesedurchsatz auf Basis der Lesekonsistenz und Anzahl der Partitionen, die zur Bearbeitung der Anfrage durchsucht werden in Rechnung gestellt, selbst 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. Das Abrufen der Elementanzahl verwendet dieselbe Menge an Leseeinheiten und unterliegt den gleichen Berechnungen der Elementgröße. 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 bis 1 KB. Wenn Sie ein Element schreiben möchten, das größer als 1 KB ist, muss DynamoDB zusätzliche Schreibeinheiten verbrauchen. Transaktionale Schreibforderungen erfordern 2 Schreibeinheiten, um einen Schreibvorgang für Elemente mit einer Größe bis 1 KB durchzuführen. Die Gesamtanzahl der Schreibanforderungseinheiten ist abhängig von der Elementgröße. Beispiel: Bei einer Elementgröße von 2 KB 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: Andert 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. Auch wenn Sie nur eine Teilmenge der Attribute des Elements aktualisieren, verbraucht
UpdateItemweiterhin den gesamten bereitgestellten Durchsatz (die größere der "vorher"- und "nachher"-Elementgrößen). -
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 auf eine oder mehrere Tabellen. DynamoDB verarbeitet jedes Element im Batch als einzelne
PutItemoderDeleteItem-Anforderung (Aktualisierungen werden nicht unterstützt). DynamoDB rundet zunächst die Größe jedes Elements auf den nächsten 1 KB-Grenzwert auf und berechnet dann die Gesamtgröße. Das Ergebnis ist nicht unbedingt dasselbe wie die Gesamtgröße aller Elemente. Wenn beispielsweiseBatchWriteItemzwei Elemente mit den Größen 500 Byte und 3,5 KB schreibt, berechnet DynamoDB die Größe als 5 KB (1 KB + 4 KB). DynamoDB berechnet die Größe also 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 erlauben bedingte Schreibvorgänge, bei denen Sie einen Ausdruck angeben, der als True ausgewertet werden muss, damit die Operation erfolgreich ausgeführt werden kann. Wenn der Ausdruck als falsch ausgewertet wird, verbraucht DynamoDB dennoch Schreibkapazitätseinheiten aus der Tabelle. Die Anzahl der verbrauchten Schreibkapazitätseinheiten hängt von der Größe des Elements ab. Dieses Element kann entweder ein bereits vorhandenes Element in der Tabelle sein oder ein neues, das Sie zu erstellen oder zu aktualisieren versuchen. Nehmen wir beispielsweise an, dass ein vorhandenes Element 300 KB groß ist. Das neue Element, das Sie zu erstellen oder aktualisieren versuchen, hat eine Größe von 310 KB. Die verbrauchten Schreibkapazitätseinheiten für das neue Element betragen 310 KB.