Einschränkungen in Amazon 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.

Einschränkungen in Amazon DynamoDB

In diesem Abschnitt werden die aktuellen Einschränkungen – früher als Grenzwerte bezeichnet – in Amazon DynamoDB beschrieben.

Lese-/Schreibkapazitätsmodus

Sie können Tabellen innerhalb eines fortlaufenden 24-stündigen Zeitfensters bis zu viermal vom Modus mit bereitgestellter Kapazität auf den On-Demand-Modus umstellen. Sie können Tabellen jederzeit vom On-Demand-Modus auf den Modus mit bereitgestellter Kapazität umstellen.

Weitere Informationen zum Wechseln zwischen Lese- und Schreibkapazitätsmodus finden Sie unter Überlegungen beim Umstellen der Kapazitätsmodi in DynamoDB.

Kapazitätseinheitsgrößen (für Tabellen mit bereitgestellter Kapazität)

Eine Lesekapazitätseinheit entspricht einem Strongly-Consistent-Lesevorgang pro Sekunde oder zwei Eventually-Consistent-Lesevorgängen pro Sekunde für Elemente mit einer Größe von bis zu 4 KB.

Eine Schreibkapazitätseinheit entspricht einem Schreibvorgang pro Sekunde für Elemente mit einer Größe von bis zu 1 KB.

Transactional-Leseanforderungen benötigen zwei Lesekapazitätseinheiten, um einen Lesevorgang pro Sekunde für Elemente mit einer Größe bis zu 4 KB durchzuführen.

Transaktionelle Schreibforderungen benötigen zwei Schreibkapazitätseinheiten, um einen Schreibvorgang pro Sekunde für Elemente mit einer Größe bis zu 1 KB durchzuführen.

Anforderungseinheitengrößen (für On-Demand-Tabellen)

Eine Leseanforderungseinheit entspricht einem strikt konsistenten Lesevorgang pro Sekunde oder zwei letztendlich konsistenten Lesevorgängen pro Sekunde für Elemente mit einer Größe von bis zu 4 KB.

Eine Schreibanforderungseinheit entspricht einem Schreibvorgang pro Sekunde für Elemente mit einer Größe von bis zu 1 KB.

Transaktionale Leseanforderungen benötigen zwei Leseanforderungseinheiten, um einen Lesevorgang pro Sekunde für Elemente mit einer Größe bis zu 4 KB durchführen zu können.

Transaktionale Schreibanforderungen benötigen zwei Schreibanforderungseinheiten, um einen Schreibvorgang pro Sekunde für Elemente mit einer Größe bis zu 1 KB durchführen zu können.

Sekundäre Indizes

Projizierte sekundäre Indexattribute pro Tabelle

Sie können insgesamt bis zu 100 Attribute in alle lokalen und globalen sekundären Indizes einer Tabelle projizieren. Dies gilt nur für vom Benutzer angegebene, projizierte Attribute.

Wenn Sie in einer CreateTable-Operation für ProjectionType von INCLUDE angeben, darf die Gesamtanzahl von in NonKeyAttributes angegebenen Attributen, die sich aus der Summe aller sekundären Indizes ergibt, 100 nicht überschreiten. Wenn Sie denselben Attributnamen in zwei verschiedene Indizes projizieren, werden beim Ermitteln der Gesamtanzahl zwei unterschiedliche Attribute gezählt.

Dieses Limit gilt nicht für sekundäre Indizes mit dem ProjectionType KEYS_ONLY oder ALL.

Partitions- und Sortierschlüssel

Partitionsschlüssellänge

Die Mindestlänge eines Partitionsschlüsselwerts beträgt 1 Byte. Die maximale Länge beträgt 2 048 Byte.

Partitionsschlüsselwerte

Es gibt praktisch keine Einschränkung in Bezug auf die Anzahl von eindeutigen Partitionsschlüsselwerten, weder für Tabellen noch für sekundäre Indizes.

Sortierschlüssellänge

Die Mindestlänge eines Sortierschlüsselwerts beträgt 1 Byte. Die maximale Länge beträgt 1 024 Byte.

Sortierschlüsselwerte

Im Prinzip gibt es praktisch keine Einschränkung in Bezug auf die Anzahl von eindeutigen Sortierschlüsselwerten pro Partitionsschlüsselwert.

Eine Ausnahme bilden Tabellen mit sekundären Indizes. Eine Elementauflistung ist ein Satz von Elementen, die als Partitionsschlüsselattribut den gleichen Wert haben. In einem globalen sekundären Index ist die Elementauflistung unabhängig von der Basistabelle (und kann ein anderes Partitionsschlüsselattribut haben). In einem lokalen sekundären Index befindet sich die indizierte Ansicht jedoch in derselben Partition (Co-Location) wie das Element in der Tabelle und verwendet dasselbe Partitionsschlüsselattribut. Aufgrund dieser Lokalität kann die Elementauflistung nicht auf mehrere Partitionen verteilt werden, wenn eine Tabelle über eine oder mehrere LSIs verfügt.

Bei einer Tabelle mit einem oder mehreren LSIs dürfen Elementauflistungen eine Größe von 10 GB nicht überschreiten. Dies schließt alle Basistabellenelemente und alle projizierten LSI-Ansichten ein, die denselben Wert des Partitionsschlüsselattributs haben. 10 GB ist die maximale Größe einer Partition. Detailliertere Informationen erhalten Sie unter Größenlimit der Elementauflistung.

Benennungsregeln

Tabellennamen und sekundäre Indexnamen

Namen für Tabellen und sekundäre Indizes müssen mindestens 3 Zeichen und dürfen höchstens 255 Zeichen lang sein. Es sind die folgenden Zeichen zulässig:

  • A-Z

  • a-z

  • 0-9

  • _ (Unterstrich)

  • - (Bindestrich)

  • . (Punkt)

Attributnamen

Im Allgemeinen muss ein Attributname mindestens ein Zeichen lang sein und darf nicht größer als 64 KB sein.

Dabei gibt es die folgenden Ausnahmen. Diese Attributnamen dürfen maximal 255 Zeichen lang sein:

  • Partitionsschlüsselnamen des Sekundärindexes

  • Sortierschlüsselnamen des Sekundärindexes

  • Die Namen aller vom Benutzer angegebenen, projizierten Attribute (gilt nur für lokale sekundäre Indizes). Wenn Sie in einer CreateTable-Operation den ProjectionType INCLUDE angeben, sind die Namen der Attribute des Parameters NonKeyAttributes längenbeschränkt. Die Projektionstypen KEYS_ONLY und ALL sind nicht betroffen.

Diese Attributnamen müssen mit UTF-8 kodiert werden und die Gesamtgröße der einzelnen Namen (nach der Kodierung) darf nicht größer als 255 Byte sein.

Datentypen

Zeichenfolge

Die Länge einer Zeichenfolge wird durch die maximale Elementgröße 400 KB beschränkt.

Die Zeichenfolgen sind Unicode mit binärer UTF-8-Kodierung. Da UTF-8 eine Kodierung mit variabler Breite ist, bestimmt DynamoDB die Länge einer Zeichenfolge unter Verwendung der UTF-8-Bytes.

Anzahl

Eine Zahl kann bis zu 38 Nachkommastellen besitzen und positiv, negativ oder null sein.

  • Positiver Bereich: 1E-130 bis 9.9999999999999999999999999999999999999E+125

  • Negativer Bereich: -9.9999999999999999999999999999999999999E+125 bis -1E-130

DynamoDB verwendet JSON-Zeichenfolgen, um Zahlendaten in Anfragen und Antworten darzustellen. Weitere Informationen finden Sie unter DynamoDB Low-Level-API.

Wenn die Zahlengenauigkeit wichtig ist, sollten Sie Zahlen mithilfe von Zeichenfolgen, die Sie aus einem Number-Datentyp konvertieren, an DynamoDB übergeben.

Binär

Die Länge eines binären Werts wird durch die maximale Elementgröße 400 KB beschränkt.

Anwendungen, die binäre Attribute verwenden, müssen die Daten vor dem Senden an DynamoDB im base64-Format kodieren. Nach dem Empfang der Daten dekodiert DynamoDB sie in ein nicht signiertes Byte-Array und verwendet dieses Array für die Länge der Attribute.

Items

Elementgröße

Die maximale Elementgröße in DynamoDB beträgt 400 KB. Darin inbegriffen sind die binäre Länge (UTF-8-Länge) des Attributnamens und die Länge des Attributwerts (ebenfalls binäre Länge). Der Attributname wird bei der Größenbeschränkung mit eingerechnet.

Betrachten wir ein Element mit zwei Attributen als Beispiel: ein Attribut mit dem Namen „Shirtfarbe“ und dem Wert „R“ und ein weiteres Attribut mit dem Namen „Shirtgröße“ und dem Wert „M“. Die Gesamtgröße dieses Elements ist 23 Byte.

Elementgröße für Tabellen mit lokalen sekundären Indizes

Für jeden lokalen sekundären Index in einer Tabelle gilt ein Limit von 400 KB im Hinblick auf die Summe folgender Werte:

  • Die Größe der Daten eines Elements in der Tabelle.

  • Die Größe der entsprechenden Einträge (einschließlich der Schlüsselwerte und projizierten Attribute) in allen lokalen sekundären Indizes.

Attribute

Attribut-Namen-Wert-Paare pro Element

Die Gesamtgröße von Attributen pro Element muss der maximalen DynamoDB-Elementgröße (400 KB) entsprechen.

Anzahl der Werte in einer Liste, einer Zuordnung oder einem Satz

Es gibt keine Beschränkungen in Bezug auf die Anzahl der Werte in einer Liste, einer Zuordnung oder einem Satz, solange das Element, das die Werte enthält, das Limit der Elementgröße von 400 KB einhält.

Attributwerte

Leere Zeichenfolgen- und Binär-Attributwerte sind zulässig, wenn das Attribut nicht als Schlüsselattribut für eine Tabelle oder einen Index verwendet wird. Leere Zeichenfolgen- und Binärwerte sind innerhalb der Mengen, Listen und Zuordnungen zulässig. Ein Attributwert kann kein leerer Satz sein (Zeichenfolgensatz, Zahlensatz und Binärzahlensatz). Leere Listen und Zuordnungen sind jedoch zulässig.

Verschachtelte Attributtiefe

DynamoDB unterstützt bis zu 32 Ebenen verschachtelter Attribute.

Ausdrucksparameter

Ausdrucksparameter umfassen ProjectionExpression, ConditionExpression, UpdateExpression und FilterExpression.

Länge

Die maximale Länge der Ausdruckszeichenfolge ist 4 KB. Die Größe von ConditionExpression a=b beträgt z. B. 3 Byte.

Die maximale Länge jedes einzelnen Ausdrucksattributnamens oder Ausdrucksattributwerts beträgt 255 Byte. #name ist beispielsweise 5 Byte lang; :val 4 Byte.

Die maximale Länge aller Substitutionsvariablen in einem Ausdruck beträgt 2 MB. Dies ist die Summe der Längen aller ExpressionAttributeNames und ExpressionAttributeValues.

Operatoren und Operanden

Die maximale Anzahl von in UpdateExpression zulässigen Operatoren oder Funktionen ist 300. Der Ausdruck UpdateExpression SET a = :val1 + :val2 + :val3 enthält z. B. zwei „+“-Operatoren.

Die maximale Anzahl von Operanden für den Vergleichsoperator IN ist 100.

Reservierte Wörter

DynamoDB verhindert nicht, dass Namen verwendet werden, die mit reservierten Wörtern in Konflikt stehen. (Eine vollständige Liste finden Sie unter Reservierte Wörter in DynamoDB.)

Wenn Sie jedoch ein reserviertes Wort in einem Ausdrucksparameter verwenden, müssen Sie auch ExpressionAttributeNames angeben. Weitere Informationen finden Sie unter Ausdrucksattributnamen (Aliasse) in DynamoDB.

DynamoDB-Transaktionen

Für transaktionale DynamoDB-API-Operationen gelten die folgenden Einschränkungen:

  • Eine Transaktion darf nicht mehr als 100 eindeutige Elemente enthalten.

  • Eine Transaktion darf nicht mehr als 4 MB Daten enthalten.

  • Zwei Aktionen gleichzeitig dürfen nicht auf dasselbe Element in der derselben Tabelle einwirken. Beispielsweise können ConditionCheck und Update in einer Transaktion nicht beide auf dasselbe Element abzielen.

  • Eine Transaktion kann nicht auf Tabellen in mehr als einem AWS-Konto oder mehr als einer -Region einwirken.

  • Transaktionale Operationen umfassen ACID (Atomizität, Konsistenz, Isolierung und Zuverlässigkeit) nur in der AWS-Region, in der die Schreiboperation ursprünglich durchgeführt wurde. Regionsübergreifende Transaktionen werden in globalen Tabellen nicht unterstützt. Angenommen, Sie haben eine globale Tabelle mit Replikaten in den Regionen USA Ost (Ohio) und USA West (Oregon) und Sie führen einen TransactWriteItems-Vorgang in der Region USA Ost (Nord-Virginia) aus. In diesem Fall können sind möglicherweise teilweise abgeschlossene Transaktionen in der Region USA West (Oregon) zu beobachten, während Änderungen repliziert werden. Die Änderungen werden erst dann in die anderen Regionen repliziert, nachdem sie in der Quellregion in die Datenbank eingetragen wurden.

DynamoDB Streams

Gleichzeitige Leser eines Shard in DynamoDB Streams

Für Einzelregionstabellen, bei denen es sich nicht um globale Tabellen handelt, können Sie bis zu zwei Prozesse entwerfen, die gleichzeitig aus demselben DynamoDB-Streams-Shard lesen. Eine Überschreitung dieses Grenzwerts kann zu einer Anforderungsdrosselung führen. Für globale Tabellen empfehlen wir, die Anzahl der gleichzeitigen Lesevorgänge auf einen zu beschränken, um eine Anforderungsdrosselung zu vermeiden.

DynamoDB Accelerator (DAX).

AWS-Verfügbarkeit in Regionen

Eine Liste der AWS-Regionen, in denen DAX verfügbar ist, finden Sie unter DynamoDB Accelerator (DAX) in der Allgemeine AWS-Referenz.

Knoten

Ein DAX-Cluster besteht aus genau einem Primärknoten und zwischen null und zehn Lesereplikat-Knoten.

Die Gesamtanzahl von Knoten (pro AWS-Konto) dürfen in einer einzigen AWS-Region 50 nicht überschreiten.

Parametergruppen

Sie können bis zu 20 DAX-Parametergruppen pro Region erstellen.

Subnetzgruppen

Sie können bis zu 50 DAX-Subnetzgruppen pro Region erstellen.

Innerhalb einer Subnetzgruppe können Sie bis zu 20 Subnetze definieren.

Wichtig

Ein DAX-Cluster unterstützt maximal 500 DynamoDB-Tabellen. Wenn Sie mehr als 500 DynamoDB-Tabellen verwenden, kann es bei Ihrem Cluster zu einer Verschlechterung der Verfügbarkeit und Leistung kommen.

API-spezifische Einschränkungen

CreateTable/UpdateTable/DeleteTable/PutResourcePolicy/DeleteResourcePolicy

Im Allgemeinen können bis zu 500 CreateTable-, UpdateTable-, DeleteTable-, PutResourcePolicy- und DeleteResourcePolicy-Anforderungen gleichzeitig in beliebiger Kombination ausgeführt werden. Folglich darf die Gesamtanzahl von Tabellen im Status CREATING, UPDATING oder DELETING nicht mehr als 500 betragen.

Sie können pro Sekunde bis zu 2 500 Anfragen veränderbarer Steuerebenen-API-Anfragen (CreateTable, DeleteTable, UpdateTable, PutResourcePolicy und DeleteResourcePolicy) in einer Tabellengruppe senden. Für PutResourcePolicy- und DeleteResourcePolicy-Anforderungen gelten jedoch niedrigere individuelle Grenzwerte. Weitere Informationen finden Sie in den folgenden Kontingentdetails für PutResourcePolicy und DeleteResourcePolicy.

CreateTable- und PutResourcePolicy-Anforderungen, die eine ressourcenbasierte Richtlinie beinhalten, zählen als zwei zusätzliche Anfragen pro KB der Richtlinie. Eine PutResourcePolicy- oder CreateTable-Anforderung mit einer Richtliniengröße von 5 KB wird beispielsweise als 11 Anforderungen gezählt. 1 für die CreateTable-Anforderung und 10 für die ressourcenbasierte Richtlinie (2 x 5 KB). Entsprechend wird eine Richtlinie mit einer Größe von 20 KB als 41 Anforderungen gezählt: 1 für die CreateTable-Anforderung und 40 für die ressourcenbasierte Richtlinie (2 x 20 KB).

PutResourcePolicy

Sie können bis zu 25 PutResourcePolicy-API-Anforderungen pro Sekunde für eine Gruppe von Tabellen senden. Nach einer erfolgreichen Anforderung für eine einzelne Tabelle werden in den folgenden 15 Sekunden keine neuen PutResourcePolicy-Anforderungen unterstützt.

Ein ressourcenbasiertes Richtliniendokument kann maximal 20 KB groß sein. Leerzeichen werden in DynamoDB beim Berechnen der Richtliniengröße in Bezug auf diesen Limit nicht mitgezählt.

DeleteResourcePolicy

Sie können bis zu 50 DeleteResourcePolicy-API-Anforderungen pro Sekunde für eine Gruppe von Tabellen senden. Nach einer erfolgreichen PutResourcePolicy-Anforderung für eine einzelne Tabelle werden in den folgenden 15 Sekunden keine neuen DeleteResourcePolicy-Anforderungen unterstützt.

BatchGetItem

Eine einzelne BatchGetItem-Operation kann maximal 100 Elemente abrufen. Die Gesamtgröße aller abgerufenen Elemente darf 16 MB nicht überschreiten.

BatchWriteItem

Eine einzelne BatchWriteItem-Operation kann bis zu 25 PutItem- oder DeleteItem-Anforderungen umfassen. Die Gesamtgröße aller geschriebenen Elemente darf 16 MB nicht überschreiten.

DescribeStream

Sie können DescribeStream maximal 10 Mal pro Sekunde aufrufen.

DescribeTableReplicaAutoScaling

Die Methode DescribeTableReplicaAutoScaling unterstützt nur zehn Anforderungen pro Sekunde.

DescribeLimits

DescribeLimits sollte nur gelegentlich aufgerufen werden. Sie müssen mit Drosselungsfehlern rechnen, wenn Sie die Anforderung mehr als einmal pro Minute aufrufen.

DescribeContributorInsights/ListContributorInsights/UpdateContributorInsights

DescribeContributorInsights, ListContributorInsights und UpdateContributorInsights sollten nur gelegentlich aufgerufen werden. DynamoDB unterstützt bis zu fünf Anforderungen pro Sekunde für jede dieser APIs.

DescribeTable/ListTables/GetResourcePolicy

Sie können pro Sekunde bis zu 2 500 Anforderungen an schreibgeschützten (DescribeTable, ListTables und GetResourcePolicy) Steuerebenen-API-Anforderungen in beliebiger Kombination senden. Für die GetResourcePolicy-API gilt ein niedrigeres individuelles Limit von 100 Anforderungen pro Sekunde.

DescribeTimeToLive

Die DescribeTimeToLive-Operation ist auf 10 Leseanforderungseinheiten pro Sekunde gedrosselt. Wenn Sie diese Grenze überschreiten, gibt DynamoDB einen ThrottlingException-Fehler zurück.

Query

Der Ergebnissatz einer Query ist auf 1 MB pro Aufruf beschränkt. Sie können den LastEvaluatedKey von der Query-Antwort verwenden, um weitere Ergebnisse abzurufen.

Scan

Der Ergebnissatz einer Scan ist auf 1 MB pro Aufruf beschränkt. Sie können den LastEvaluatedKey von der Scan-Antwort verwenden, um weitere Ergebnisse abzurufen.

UpdateKinesisStreamingDestination

Bei der Ausführung von UpdateKinesisStreamingDestination-Operationen können Sie innerhalb von 24 Stunden maximal dreimal einen neuen Wert für ApproximateCreationDateTimePrecision festlegen.

UpdateTableReplicaAutoScaling

Die Methode UpdateTableReplicaAutoScaling unterstützt nur zehn Anforderungen pro Sekunde.

UpdateTableTimeToLive

Die Methode UpdateTableTimeToLive unterstützt nur eine Anforderung zum Aktivieren oder Deaktivieren von Time to Live (TTL) pro angegebener Tabelle und Stunde. Es kann bis zu einer Stunde dauern, bis diese Änderung vollständig verarbeitet ist. Alle zusätzlichen UpdateTimeToLive-Aufrufe für dieselbe Tabelle während dieser einen Stunde resultieren in einer ValidationException.

Ruhende DynamoDB-Verschlüsselung

Sie können bis zu viermal zwischen einem AWS-eigener Schlüssel, einem Von AWS verwalteter Schlüssel und einem kundenverwalteten Schlüssel wechseln, jederzeit pro 24–Stunden-Fenster, pro Tabelle und ab dem Zeitpunkt der Erstellung der Tabelle. Wenn in den vorhergehenden 6 Stunden kein Wechsel erfolgt ist, ist ein zusätzlicher Wechsel erlaubt. Dadurch wird die maximale Anzahl an Wechseln pro Tag faktisch auf 8 erhöht (4 Wechsel in den ersten 6 Stunden und ein weiterer Wechsel jeweils für alle folgenden Zeitfenster von 6 Stunden an einem Tag).

Sie können die Verschlüsselungsschlüssel so oft wie nötig ändern, um AWS-eigener Schlüssel zu verwenden, selbst wenn das obige Kontingent erschöpft ist.

Es gelten die folgenden Kontingente, sofern Sie keine höheren Werte beantragen. Informationen zum Anfordern einer Erhöhung des Servicekontingents finden Sie unter https://aws.amazon.com/support.