Unterstützte Datentypen und Benennungsregeln 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.

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 werden und die 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 Ausdrucksattributnamen 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 repräsentieren, wie sie z. B. in einem JSON-Dokument zu finden sind. 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 NoSQL-Datenbank und schemalos. 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.

Es folgen Beschreibungen der einzelnen Datentypen. Außerdem sind einige Beispiele im JSON-Format angegeben.

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, ist die Verwendung der Epochenzeit - die Anzahl der Sekunden seit 00:00:00 UTC am 1. Januar 1970. Die Epochenzeit 1437136300 stellt 12:31:40 UTC am 17. Juli 2015 dar.

Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Unix_time.

Zeichenfolge

Die Zeichenfolgen sind Unicode mit binärer UTF-8-Kodierung. 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 Zeichenfolgen mithilfe der Bytes der zugrunde liegenden UTF-8-Zeichenfolgenkodierung. 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 dazu ist die Verwendung von ISO 8601-Zeichenfolgen, wie in 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 Zuordnung ist mit einem JSON-Objekt vergleichbar. 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.

Zuordnungen eignen sich optimal für das 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 Low-Level-DynamoDB-API-Protokoll verwendet Datentypdeskriptoren als Token, die DynamoDB mitteilen, wie die einzelnen Attribute zu interpretieren sind.

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