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.
Unterstützte Datentypen und Benennungsregeln in Amazon DynamoDB
In diesem Abschnitt werden die Amazon-DynamoDB-Benennungsregeln und die verschiedenen Datentypen beschrieben, die DynamoDB unterstützt. Für Datentypen gelten bestimmte Limits. Weitere Informationen finden Sie unter Datentypen.
Benennungsregeln
Tabellen, Attribute und andere Objekte in DynamoDB muss einen Namen haben. Namen sollten sinnvoll und präzise sein – Namen wie beispielsweise Produkte, Bücher und Verfasser sind selbsterklärend.
Die folgenden Benennungsregeln gelten für DynamoDB:
-
Alle Namen müssen mit UTF -8 kodiert sein und Groß- und Kleinschreibung beachten.
-
Tabellen- und Indexnamen müssen zwischen 3 und 255 Zeichen lang sein und dürfen nur folgende Zeichen enthalten:
-
a-z
-
A-Z
-
0-9
-
_
(Unterstrich) -
-
(Bindestrich) -
.
(Punkt)
-
-
Attributnamen müssen mindestens ein Zeichen lang und dürfen nicht größer als 64 KB sein. Eine bewährte Methode besteht darin, Attributnamen möglichst kurz zu halten. Dies trägt zur Reduzierung der verbrauchten Leseanforderungseinheiten bei, da Attributnamen beim Erfassen der Speicher- und Durchsatznutzung berücksichtigt werden.
Dabei gibt es die folgenden Ausnahmen. Diese Attributnamen dürfen maximal 255 Zeichen lang sein:
-
Partitionsschlüsselnamen des sekundären Indexes
-
Sortierschlüsselnamen des sekundären Indexes
-
Die Namen aller vom Benutzer angegebenen, projizierten Attribute (gilt nur für lokale sekundäre Indizes)
-
Reservierte Wörter und Sonderzeichen
DynamoDB verfügt über eine Liste mit reservierten Wörtern und Sonderzeichen. Eine vollständige Liste finden Sie hier: Reservierte Wörter in DynamoDB. Außerdem haben die folgenden Zeichen in DynamoDB eine besondere Bedeutung: # (Hash) und : (Doppelpunkt).
Auch wenn DynamoDB diese reservierten Wörter und Sonderzeichen für Namen zulässt, empfehlen wir, diese nicht zu verwenden, da Sie Platzhaltervariablen definieren müssen, sobald Sie diese Namen in einem Ausdruck verwenden. Weitere Informationen finden Sie unter Namen von Ausdrucksattributen (Aliase) in DynamoDB.
Datentypen
DynamoDB unterstützt viele verschiedene Datentypen für Attribute in einer Tabelle. Sie können wie folgt kategorisiert werden:
-
Skalare Typen – Ein skalarer Typ kann genau einen Wert repräsentieren. Die skalaren Typen sind Zahl, Zeichenfolge, Binärwert, Boolescher Wert und Null.
-
Dokumenttypen — Ein Dokumenttyp kann eine komplexe Struktur mit verschachtelten Attributen darstellen, wie Sie sie beispielsweise in einem Dokument finden würden. JSON Die Dokumenttypen sind Liste und Zuordnung.
-
Satztypen – Ein Satztyp kann mehrere Skalarwerte repräsentieren. Die Satztypen sind Zeichenfolgensatz, Zahlensatz und Binärwertesatz.
Wenn Sie eine Tabelle oder einen Sekundärindex erstellen, müssen Sie die Namen und Datentypen der einzelnen Primärschlüsselattribute (Partitions- und Sortierschlüssel) angeben. Darüber hinaus muss jedes Schlüsselattribut als Zeichenfolgen-, Zahlen- oder Binärtyp definiert sein.
DynamoDB ist eine SQL No-Datenbank und hat kein Schema. Dies bedeutet, dass Sie beim Erstellen von Tabellen abgesehen von den Primärschlüsselattributen keine Attribute oder Datentypen definieren müssen. Im Vergleich dazu erfordern relationale Datenbanken beim Erstellen einer Tabelle die Angabe der Namen und Datentypen für jede einzelne Spalte.
Im Folgenden finden Sie Beschreibungen der einzelnen Datentypen sowie Beispiele im Format. JSON
Skalare Typen
Die skalaren Typen sind Zahl, Zeichenfolge, Binärwert, Boolescher Wert und Null.
Zahl
Zahlen können positiv, negativ oder Null sein. Zahlen können auf 38 Stellen genau sein. Wird dieser Wert überschritten, wird eine Ausnahme ausgegeben. Wenn Sie eine höhere Genauigkeit als 38 Stellen benötigen, können Sie Zeichenfolgen verwenden.
-
Positiver Bereich: 1E-130 bis 9,9999999999999999999999999999999999999E+125
-
Negativer Bereich: -9,9999999999999999999999999999999999999E+125 bis -1E-130
In DynamoDB werden Zahlen als variable Länge dargestellt. Nullen am Anfang und am Ende werden abgeschnitten.
Alle Zahlen werden über das Netzwerk an DynamoDB als Zeichenfolgen übertragen, um die Kompatibilität über die Sprachen und Bibliotheken hinweg zu maximieren. DynamoDB behandelt sie jedoch als Zahlentypattribute für mathematische Operationen.
Sie können den Datentyp Zahl verwenden, um ein Datum oder einen Zeitstempel zu repräsentieren. Eine Möglichkeit, dies zu tun, besteht darin, die Epochenzeit zu verwenden — die Anzahl der Sekunden seit 00:00:00 Uhr UTC am 1. Januar 1970. Die Epochenzeit 1437136300
steht beispielsweise für 12:31:40 Uhr am 17. Juli 2015. UTC
Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Unix_time
String
Zeichenketten sind Unicode-Zeichen mit UTF der Binärkodierung -8. Die Mindestlänge einer Zeichenfolge kann Null sein, wenn das Attribut nicht als Schlüssel für einen Index oder eine Tabelle verwendet wird und durch die maximale DynamoDB-Elementgrößenbeschränkung von 400 KB eingeschränkt ist.
Wenn Sie einen Primärschlüssel als Attribut des Typs Zeichenfolge definieren, gelten die folgenden zusätzlichen Einschränkungen:
-
Für einen einfachen Primärschlüssel beträgt die maximale Länge des ersten Attributwerts (der Partitionsschlüssel) 2048 Byte.
-
Für einen zusammengesetzten Primärschlüssel beträgt die maximale Länge des zweiten Attributwerts (Sortierschlüssel) 1024 Byte.
DynamoDB sortiert und vergleicht Zeichenketten anhand der Bytes der zugrunde liegenden UTF -8-String-Kodierung. Beispiel: „a
” (0x61) ist größer als „A
” (0x41) und „¿
” (0xC2BF) ist größer als „z
” (0x7A).
Sie können den Datentyp Zeichenfolge verwenden, um ein Datum oder einen Zeitstempel zu repräsentieren. Eine Möglichkeit, dies zu tun, besteht darin, ISO 8601 Zeichenketten zu verwenden, wie in den folgenden Beispielen gezeigt:
-
2016-02-15
-
2015-12-21T17:42:34Z
-
20150311T122706Z
Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/ ISO _8601
Anmerkung
Im Gegensatz zu herkömmlichen relationalen Datenbanken unterstützt DynamoDB nativ keinen Datums- und Uhrzeitdatentyp. Es kann hilfreich sein, Daten und Zeitdaten stattdessen als Zahlendatentyp zu speichern, wobei die Unix-Epochenzeit verwendet wird.
Binär
Attribute vom Typ Binärwert können beliebige binäre Daten speichern, wie z. B. komprimierte Textdateien, verschlüsselte Daten oder Bilder. Beim Binärtyp betrachtet DynamoDB beim Vergleichen der binären Werte jedes Byte der Binärdaten ohne Vorzeichen.
Die Länge eines binären Attributs kann Null sein, wenn das Attribut nicht als Schlüssel für einen Index oder eine Tabelle verwendet wird und durch die maximale DynamoDB-Elementgrößenbeschränkung von 400 KB eingeschränkt ist.
Wenn Sie einen Primärschlüssel als Attribut des Typs Binärwert definieren, gelten die folgenden zusätzlichen Einschränkungen:
-
Für einen einfachen Primärschlüssel beträgt die maximale Länge des ersten Attributwerts (der Partitionsschlüssel) 2048 Byte.
-
Für einen zusammengesetzten Primärschlüssel beträgt die maximale Länge des zweiten Attributwerts (Sortierschlüssel) 1024 Byte.
Ihre Anwendungen müssen Binärwerte im Base64-codierten Format codieren, bevor sie an DynamoDB gesendet werden. Nach dem Empfang dieser Werte dekodiert DynamoDB die Daten in ein nicht signiertes Byte-Array und verwendet dies als Länge des binären Attribut
Im folgenden Beispiel wird ein binäres Attribut mit base64-verschlüsseltem Text dargestellt.
dGhpcyB0ZXh0IGlzIGJhc2U2NC1lbmNvZGVk
Boolesch
Ein Attribut vom Typ Boolescher Wert kann entweder true
oder false
speichern.
Null
Null stellt ein Attribut mit einem unbekannten oder nicht definierten Status dar.
Dokumenttypen
Die Dokumenttypen sind Liste und Zuordnung. Diese Datentypen können ineinander verschachtelt werden, um komplexe Datenstrukturen bis zu 32 Ebenen tief darzustellen.
Es gibt keine Beschränkungen in Bezug auf die Anzahl der Werte in einer Liste oder Zuordnung, solange das Element, das die Werte enthält, das Limit der DynamoDB-Elementgröße (400 KB) einhält.
Ein Attributwert kann eine leere Zeichenfolge oder ein leerer Binärwert sein, wenn das Attribut nicht für einen Tabellen- oder Indexschlüssel verwendet wird. Ein Attributwert kann kein leerer Satz sein (Zeichenfolgensatz, Zahlensatz oder Binärsatz), jedoch sind leere Listen und Zuordnungen zulässig. Leere Zeichenfolgen- und Binärwerte sind in Listen und Zuordnungen zulässig. Weitere Informationen finden Sie unter Attribute.
Auflisten
Ein Attribut vom Typ Liste kann eine geordnete Sammlung von Werten speichern. Listen werden in eckige Klammern gesetzt: [ ... ]
Eine Liste ähnelt einem JSON Array. Es gibt keine Einschränkungen hinsichtlich der Datentypen, die in einem Listenelement gespeichert werden können. Die Elemente in einem Listenelement müssen nicht vom selben Typ sein.
Das folgende Beispiel zeigt eine Liste mit zwei Zeichenfolgen und einer Zahl.
FavoriteThings: ["Cookies", "Coffee", 3.14159]
Anmerkung
Mit DynamoDB können Sie mit einzelnen Elementen innerhalb der Listen arbeiten, auch wenn diese Elemente stark verschachtelt sind. Weitere Informationen finden Sie unter Verwenden von Ausdrücken in DynamoDB.
Zuordnung
Ein Attribut vom Typ Zuordnung kann eine ungeordnete Sammlung von Name-Wert-Paaren speichern. Zuordnungen werden in geschweifte Klammern gesetzt: { ... }
Eine Map ist einem JSON Objekt ähnlich. Es gibt keine Einschränkungen hinsichtlich der Datentypen, die in einem Zuordnungselement gespeichert werden können. Die Elemente in einem Zuordnungselement müssen nicht vom selben Typ sein.
Karten eignen sich ideal zum Speichern von JSON Dokumenten in DynamoDB. Das folgende Beispiel zeigt eine Zuordnung, die eine Zeichenfolge, eine Zahl und eine verschachtelte Liste mit einer weiteren Zuordnung enthält.
{ Day: "Monday", UnreadEmails: 42, ItemsOnMyDesk: [ "Coffee Cup", "Telephone", { Pens: { Quantity : 3}, Pencils: { Quantity : 2}, Erasers: { Quantity : 1} } ] }
Anmerkung
Mit DynamoDB können Sie mit einzelnen Elementen innerhalb von Zuordnungen arbeiten, auch wenn diese Elemente stark verschachtelt sind. Weitere Informationen finden Sie unter Verwenden von Ausdrücken in DynamoDB.
Sätze
DynamoDB unterstützt Typen, die Sätze mit Zahlen-, Zeichenfolgen- und Binärwerten darstellen. Alle Elemente in einem Satz müssen jedoch vom selben Typ sein. Ein Zahlensatz kann z. B. nur Zahlen enthalten und ein Zeichenfolgensatz kann nur Zeichenfolgen enthalten.
Es gibt keine Beschränkungen in Bezug auf die Anzahl der Werte in einem Satz, solange das Element, das die Werte enthält, das Limit der DynamoDB-Elementgröße (400 KB) einhält.
Jeder Wert innerhalb eines Satzes muss eindeutig sein. In einem Satz spielt die Reihenfolge der Werte keine Rolle. Aus diesem Grund dürfen Ihre Anwendungen nicht davon ausgehen, dass die Elemente innerhalb des Satzes in einer bestimmten Reihenfolge vorliegen. Leere Mengen werden von DynamoDB nicht unterstützt, jedoch sind leere Zeichenfolgen und Binärwerte innerhalb einer Menge zulässig.
Das folgende Beispiel zeigt einen Zeichenfolgensatz, einen Zahlensatz und einen Binärwertesatz:
["Black", "Green", "Red"] [42.2, -19, 7.5, 3.14] ["U3Vubnk=", "UmFpbnk=", "U25vd3k="]
Datentypbeschreibungen
Das API Low-Level-DynamoDB-Protokoll verwendet Datentypdeskriptoren als Token, die DynamoDB mitteilen, wie jedes Attribut zu interpretieren ist.
Im Folgenden sehen Sie eine vollständige Liste der DynamoDB-Datentypbeschreibungen:
-
S
– Zeichenfolge -
N
– Zahl -
B
– Binary -
BOOL
– Boolean -
NULL
– Nullwert -
M
– Zuordnung -
L
– Liste -
SS
– Zeichenfolgensatz -
NS
– Zahlensatz -
BS
– Binärzahlensatz