DynamoDB-Item-Größenrechner
Füge ein DynamoDB-Item als JSON ein, um seine genaue Größe in Bytes und die verbrauchten Read und Write Capacity Units zu sehen — und teile das Ergebnis dann per Link.
Schätzung nach den AWS-Größenregeln. Brauchst du auch die Kosten? Preisrechner
Warum die Item-Größe wichtig ist
In DynamoDB zahlst du nicht pro Zeile — du zahlst für die Kapazität, die jede Operation verbraucht, und diese Kapazität ist eine Funktion der Item-Größe. Ein Lesevorgang eines Items bis 4 KB kostet eine Lese-Einheit; ein Schreibvorgang bis 1 KB kostet eine Schreib-Einheit. Überschreite eine Grenze um ein einziges Byte und die Operation rundet auf die nächste Einheit auf, sodass ein Item, das von 4 KB auf 4,1 KB anwächst, seine Lesekosten verdoppelt.
Die Item-Größe begrenzt auch, was DynamoDB speichert: Ein einzelnes Item, einschließlich aller Attributnamen und -werte, muss unter 400 KB bleiben. Große Blobs gehören in S3, mit einem Zeiger im Item. Die Byte-Größe zu kennen, bevor du deine Zugriffsmuster entwirfst, hilft dir, Hot Items klein zu halten, effizient zu batchen und überraschendes Throttling zu vermeiden.
Dieser Rechner wendet die dokumentierten AWS-Größenregeln auf reines JSON an: UTF-8-Byte-Länge für Namen und Strings, Kodierung nach signifikanten Stellen für Zahlen und der Overhead pro Element für verschachtelte Lists und Maps. Das Kapazitätsraster zeigt dann die Einheiten für jeden Lese-Konsistenzmodus und für Standard- gegenüber transaktionalen Schreibvorgängen.
Jedes Byte ist ein Attributwert — DynamoDB-Datentypen erklärt, wie jeder Typ kodiert und dimensioniert wird.
Häufig gestellte Fragen
Wie berechnet DynamoDB die Item-Größe?
Die Item-Größe ist die Summe über alle Attribute aus der UTF-8-Byte-Länge des Attributnamens plus der Größe seines Werts. Strings zählen ihre UTF-8-Bytes, Zahlen werden nach signifikanten Stellen kodiert, Booleans und null belegen 1 Byte, und Lists und Maps fügen 3 Bytes Overhead plus 1 Byte pro Element hinzu. Dieser Rechner wendet genau diese Regeln auf dein eingefügtes JSON an.
Wie werden Kapazitätseinheiten aus der Item-Größe abgeleitet?
Eine Read Capacity Unit deckt einen stark konsistenten Lesevorgang eines Items bis 4 KB ab; letztendlich konsistente Lesevorgänge kosten eine halbe Einheit und transaktionale Lesevorgänge das Doppelte. Eine Write Capacity Unit deckt einen Schreibvorgang bis 1 KB ab, und transaktionale Schreibvorgänge kosten das Doppelte. Die Item-Größe wird immer auf die nächste Grenze von 4 KB (Lesevorgänge) bzw. 1 KB (Schreibvorgänge) aufgerundet, mit mindestens einer Einheit.
Was ist die maximale DynamoDB-Item-Größe?
Ein einzelnes DynamoDB-Item — das Item plus alle seine Attributnamen und -werte — darf 400 KB nicht überschreiten. Wenn dein Item größer ist, teile es auf mehrere Items auf oder speichere die großen Attribute in Amazon S3 und behalte eine Referenz im Item. Der Rechner markiert Items, die das Limit überschreiten.
Warum kann ich keine Sets oder Binärwerte eingeben?
Reines JSON hat keine Möglichkeit, ein DynamoDB String Set, Number Set, Binary Set oder einen Binärwert auszudrücken — ein JSON-Array wird immer auf eine List (L) und ein JSON-Objekt auf eine Map (M) abgebildet. Um diese Typen zu dimensionieren, modelliere sie manuell über ihre Byte-Länge oder nutze den DynamoDB-JSON-Konverter, um die Attribute-Value-Form zu sehen.