2017-02-26 5 views
0

Ich habe eine Dynamodb-Tabelle, wo Attributnamen große Zeichenfolge sind, aber das gesamte Element ist nur 1 KB. Soll ich die Attributnamen für die Netzwerk- und Speicherleistung auf eine kleine Zeichenfolge reduzieren, da jedes Element Attributnamen sowie einen Wert oder Dynamodb hat, wird das automatisch zu Funktionscodes komprimiert und dann gespeichert?dynamodb Attributname Komprimierung

Antwort

2

Attributnamen sind benutzerdefiniert, mit Ausnahme der Primärschlüssel der Basistabelle und der Indizes, sodass DynamoDB beim Speichern von Attributnamen nicht optimiert werden kann. Außerdem werden Schreibvorgänge in 1 KB-Schritten berechnet. Es spielt keine Rolle, ob Ihre Artikelgröße 600 oder 1000 Bytes beträgt. Solch ein Gegenstand wird 1 WCU zum Schreiben bringen. Aus Gründen der Benutzerfreundlichkeit ist es besser, für Menschen lesbare Attributnamen zu verwenden. Wenn Ihre Anwendung dies zulässt, sollten Sie die Attributnamen vielleicht so lassen, wie sie sind.

0

Während es wahr ist, dass einziges Element aufgeladen liest indirekt über provisioniert Kapazitätseinheiten in Schritten von 4 KB, während Schreibvorgänge in Schritten von 1 KB geladen sind, werden diese Berechnungen während einer Abfrage oder Tabellensuche gegen die Gesamt summierten verwendet gelesene oder geschriebene Datengröße. Mit anderen Worten, die Verwendung kurzer Attributnamen trägt wesentlich zur Erhöhung der Durchsatzkapazität (für den gleichen bereitgestellten Preis) bei Abfragen bei, da Sie viel mehr Elemente pro Sekunde lesen können, da jedes Element kleiner ist und mehr benötigt wird um 4 KB für Lesevorgänge oder 1 KB für Schreibvorgänge zu erhalten, bei denen eine Kapazitätseinheit verbraucht wird.

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CapacityUnitCalculations.html

„Hinweis Wir empfehlen, kürzere Attributnamen wählen eher als lange. Dies wird Ihnen helfen Kapazitätseinheit Verbrauch und reduzieren die Menge an Speicher für Ihre Daten erforderlich zu optimieren.“

Beachten Sie auch, dass Zahlen im Vergleich zu Strings kompakter mit 2 Ziffern pro Byte gespeichert werden. Ein ISO-Format datetime (zB 2018-02-21T10: 17: 44.123Z), das Buchstaben enthält, nimmt viel mehr Platz ein (24 Bytes) als es als Zahl zu speichern (z. B. 20180221101744.123), wobei die Buchstaben weniger Platz benötigen (10 Bytes - jedes Ziffernpaar ist ein Byte plus ein Byte für Vorzeichen und Nachkommastellen.