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.
Elemente der Cassandra Query Language (CQL) in Amazon Keyspaces
Erfahren Sie mehr über die Cassandra Query Language (CQL) -Elemente, die von Amazon Keyspaces unterstützt werden, darunter Bezeichner, Konstanten, Begriffe und Datentypen.
IDs
Identifikatoren (oder Namen) werden verwendet, um Tabellen, Spalten und andere Objekte zu identifizieren. Ein Bezeichner kann in Anführungszeichen gesetzt werden oder nicht. Folgendes gilt.
identifier ::= unquoted_identifier | quoted_identifier unquoted_identifier ::= re('[a-zA-Z][a-zA-Z0-9_]*') quoted_identifier ::= '"' (any character where " can appear if doubled)+ '"'
Konstanten
Die folgenden Konstanten sind definiert.
constant ::= string | integer | float | boolean | uuid | blob | NULL string ::= '\'' (any character where ' can appear if doubled)+ '\'' '$$' (any character other than '$$') '$$' integer ::= re('-?[0-9]+') float ::= re('-?[0-9]+(\.[0-9]*)?([eE][+-]?[0-9+])?') | NAN | INFINITY boolean ::= TRUE | FALSE uuid ::= hex{8}-hex{4}-hex{4}-hex{4}-hex{12} hex ::= re("[0-9a-fA-F]") blob ::= '0' ('x' | 'X') hex+
Bedingungen
Ein Begriff bezeichnet die Art von Werten, die unterstützt werden. Begriffe werden wie folgt definiert.
term ::= constant | literal | function_call | arithmetic_operation | type_hint | bind_marker literal ::= collection_literal | tuple_literal function_call ::= identifier '(' [ term (',' term)* ] ')' arithmetic_operation ::= '-' term | term ('+' | '-' | '*' | '/' | '%') term
Datentypen
Amazon Keyspaces unterstützt die folgenden Datentypen:
Zeichenfolgen-Typen
Datentyp | Beschreibung |
---|---|
|
Stellt eine ASCII Zeichenfolge dar. |
|
Stellt eine mit UTF -8 kodierte Zeichenfolge dar. |
|
Stellt eine mit UTF -8 kodierte Zeichenfolge dar ( |
Numerische Typen
Datentyp | Beschreibung |
---|---|
|
Stellt einen 64-Bit-Wert vom Typ Long mit Vorzeichen dar. |
|
Stellt einen 64-Bit-Integer-Zähler mit Vorzeichen dar. Weitere Informationen finden Sie unter Zähler. |
|
Stellt eine Dezimalzahl mit variabler Genauigkeit dar. |
|
Stellt einen 64-Bit-Gleitkommawert von IEEE 754 dar. |
|
Stellt eine 32-Bit-Gleitkommazahl vom Typ IEEE 754 dar. |
|
Stellt einen 32-Bit-Int-Wert mit Vorzeichen dar. |
|
Stellt eine Ganzzahl mit beliebiger Genauigkeit dar. |
Zähler
Eine counter
Spalte enthält eine 64-Bit-Ganzzahl mit Vorzeichen. Der Zählerwert wird mithilfe der UPDATE Anweisung erhöht oder verringert und kann nicht direkt festgelegt werden. Das macht counter
Spalten nützlich, um Zählungen nachzuverfolgen. Mithilfe von Zählern können Sie beispielsweise die Anzahl der Einträge in einer Protokolldatei oder die Anzahl der Aufrufe eines Beitrags in einem sozialen Netzwerk verfolgen. Für counter
Spalten gelten die folgenden Einschränkungen:
-
Eine Spalte vom Typ
counter
kann nicht Teilprimary key
einer Tabelle sein. -
In einer Tabelle, die eine oder mehrere Spalten des Typs enthält
counter
, müssen alle Spalten in dieser Tabelle vom Typ seincounter
.
In Fällen, in denen eine Zähleraktualisierung fehlschlägt (z. B. aufgrund von Timeouts oder Verbindungsverlust mit Amazon Keyspaces), weiß der Client nicht, ob der Zählerwert aktualisiert wurde. Wenn die Aktualisierung erneut versucht wird, wird die Aktualisierung des Zählerwerts möglicherweise ein zweites Mal angewendet.
Blob-Typ
Datentyp | Beschreibung |
---|---|
|
Stellt beliebige Byte dar. |
Typ BOOLEAN
Datentyp | Beschreibung |
---|---|
|
Steht für true oderfalse . |
Zeitbezogene Typen
Datentyp | Beschreibung |
---|---|
|
64-Bit-Ganzzahl mit Vorzeichen, die Datum und Uhrzeit seit der Epoche (1. Januar 1970 um 00:00:00 UhrGMT) in Millisekunden angibt. |
|
Stellt eine Version 1 dar. UUID |
Sammlungstypen
Datentyp | Beschreibung |
---|---|
|
Stellt eine geordnete Sammlung literaler Elemente dar. |
|
Stellt eine ungeordnete Sammlung von Schlüssel-Wert-Paaren dar. |
|
Stellt eine ungeordnete Sammlung von einem oder mehreren literalen Elementen dar. |
Sie deklarieren eine Auflistungsspalte, indem Sie den Sammlungstyp verwenden, gefolgt von einem anderen Datentyp (z. B. TEXT
oderINT
) in spitzen Klammern. Sie können eine Spalte mit einem SET
of erstellenTEXT
, oder Sie können Paare aus MAP
of TEXT
und INT
Schlüssel-Wert-Paaren erstellen, wie im folgenden Beispiel gezeigt.
SET <TEXT> MAP <TEXT, INT>
Eine nicht eingefrorene Sammlung ermöglicht es Ihnen, Aktualisierungen an jedem einzelnen Sammlungselement vorzunehmen. Clientseitige Zeitstempel und Time to Live (TTL) -Einstellungen werden für einzelne Elemente gespeichert.
Wenn Sie das FROZEN
Schlüsselwort für einen Sammlungstyp verwenden, werden die Werte der Sammlung zu einem einzigen unveränderlichen Wert serialisiert, und Amazon Keyspaces behandelt sie wie einen. BLOB
Dies ist eine eingefrorene Sammlung. Eine INSERT
UPDATE
Oder-Anweisung überschreibt die gesamte eingefrorene Sammlung. Sie können einzelne Elemente in einer eingefrorenen Sammlung nicht aktualisieren.
Clientseitige Zeitstempel und Einstellungen für die Gültigkeitsdauer (TTL) gelten für die gesamte eingefrorene Sammlung, nicht für einzelne Elemente. Frozen
Sammlungsspalten können Teil einer Tabelle seinPRIMARY KEY
.
Sie können eingefrorene Sammlungen verschachteln. Sie können beispielsweise MAP
innerhalb von a definieren, SET
wenn der MAP
das FROZEN
Schlüsselwort verwendet, wie im folgenden Beispiel gezeigt.
SET <FROZEN> <MAP <TEXT, INT>>>
Amazon Keyspaces unterstützt standardmäßig die Verschachtelung von bis zu fünf Ebenen eingefrorener Sammlungen. Weitere Informationen finden Sie unter Amazon Keyspaces-Servicekontingente. Weitere Informationen zu den funktionalen Unterschieden mit Apache Cassandra finden Sie unter. FROZENSammlungen Weitere Hinweise zur CQL Syntax finden Sie unter CREATE TABLE undALTER TABLE.
Typ „Tupel“
Der tuple
Datentyp steht für eine begrenzte Gruppe literaler Elemente. Sie können ein Tupel als Alternative zu einem verwenden. user defined
type
Sie müssen das FROZEN
Schlüsselwort nicht für Tupel verwenden. Das liegt daran, dass ein Tupel immer eingefroren ist und Sie Elemente nicht einzeln aktualisieren können.
Andere Typen
Datentyp | Beschreibung |
---|---|
|
Eine Zeichenfolge, die eine IP-Adresse darstellt, IPv4 entweder im IPv6 Oder-Format. |
Statisch
In einer Amazon Keyspaces-Tabelle mit Clusterspalten können Sie das STATIC
Schlüsselwort verwenden, um eine statische Spalte beliebigen Typs zu erstellen.
Die folgende Aussage ist ein Beispiel dafür.
my_column INT STATIC
Weitere Hinweise zum Arbeiten mit statischen Spalten finden Sie unterSchätzen Sie den Kapazitätsverbrauch für statische Spalten in Amazon Keyspaces.
JSONKodierung von Amazon Keyspaces-Datentypen
Amazon Keyspaces bietet dieselben JSON Datentypzuordnungen wie Apache Cassandra. In der folgenden Tabelle werden die Datentypen beschrieben, die Amazon Keyspaces in INSERT JSON
Anweisungen akzeptiert, und die Datentypen, die Amazon Keyspaces bei der Rückgabe von Daten mit der SELECT JSON
Anweisung verwendet.
Für Einzelfeld-Datentypen wiefloat
, int
UUID
date
, und können Sie Daten auch als einfügen. string
Für zusammengesetzte Datentypen und Sammlungen, wietuple
, und map
list
, können Sie Daten auch kodiert JSON oder als kodierte JSON string
Daten einfügen.
JSONDatentyp | In INSERT JSON Kontoauszügen akzeptierte Datentypen |
In SELECT JSON Anweisungen zurückgegebene Datentypen |
Hinweise |
---|---|---|---|
|
string |
string |
Verwendet die JSON |
|
integer, string |
integer |
Die Zeichenfolge muss eine gültige 64-Bit-Ganzzahl sein. |
|
string |
string |
Die Zeichenfolge sollte mit beginnen, |
|
boolean, string |
boolean |
Die Zeichenfolge muss entweder |
|
string |
string |
Datum im Format |
|
integer, float, string |
float |
Kann im clientseitigen Decoder eine Gleitkomma-Präzision von IEEE -754 von 32 Bit oder 64 Bit überschreiten. |
|
integer, float, string |
float |
Die Zeichenfolge muss eine gültige Ganzzahl oder eine Fließkommazahl sein. |
|
integer, float, string |
float |
Die Zeichenfolge muss eine gültige Ganzzahl oder eine Fließkommazahl sein. |
|
string |
string |
IPv4oder IPv6 Adresse. |
|
integer, string |
integer |
Die Zeichenfolge muss eine gültige 32-Bit-Ganzzahl sein. |
|
list, string |
list |
Verwendet die systemeigene JSON Listendarstellung. |
|
map, string |
map |
Verwendet die native JSON Kartendarstellung. |
|
integer, string |
integer |
Die Zeichenfolge muss eine gültige 16-Bit-Ganzzahl sein. |
|
list, string |
list |
Verwendet die systemeigene JSON Listendarstellung. |
|
string |
string |
Verwendet die JSON |
|
string |
string |
Uhrzeit im Format |
|
integer, string |
string |
Ein Zeitstempel. Zeichenkettenkonstanten ermöglichen es Ihnen, Zeitstempel als Datumsangaben zu speichern. Datumsstempel mit Format |
|
string |
string |
Geben Sie 1 einUUID. Das UUID Format constants finden Sie unter. |
|
integer, string |
integer |
Die Zeichenfolge muss eine gültige 8-Bit-Ganzzahl sein. |
|
list, string |
list |
Verwendet die systemeigene JSON Listendarstellung. |
|
string |
string |
Das UUID Format constants finden Sie unter. |
|
string |
string |
Verwendet die JSON |
|
integer, string |
integer |
Variable Länge; kann 32-Bit- oder 64-Bit-Ganzzahlen im clientseitigen Decoder überlaufen. |