View a markdown version of this page

Cassandra Query Language (CQL) -Elemente in Amazon Keyspaces - Amazon Keyspaces (für Apache Cassandra)

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.

Cassandra Query Language (CQL) -Elemente in Amazon Keyspaces

Erfahren Sie mehr über die Cassandra Query Language (CQL) -Elemente, die von Amazon Keyspaces unterstützt werden, einschließlich 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 Description

ascii

Stellt eine ASCII-Zeichenfolge dar.

text

Stellt eine UTF-8 kodierte Zeichenfolge dar.

varchar

Stellt eine UTF-8 kodierte Zeichenfolge dar (varcharist ein Alias fürtext).

Numerische Typen

Datentyp Description

bigint

Stellt eine 64-Bit-Zeichenfolge mit Vorzeichen dar.

counter

Stellt einen 64-Bit-Ganzzahlzähler mit Vorzeichen dar. Weitere Informationen finden Sie unter Zähler.

decimal

Stellt eine Dezimalzahl mit variabler Genauigkeit dar.

double

Stellt eine 64-Bit-IEEE 754-Gleitkommazahl dar.

float

Stellt eine 32-Bit-IEEE 754-Gleitkommazahl dar.

int

Stellt eine 32-Bit-Ganzzahl mit Vorzeichen dar.

varint

Stellt einen Ganzzahlwert innerhalb des Bereichs +/-10^38 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 erniedrigt und kann nicht direkt gesetzt werden. Aus diesem Grund sind counter Spalten nützlich, um die Anzahl zu verfolgen. Beispielsweise können Sie Zähler verwenden, um die Anzahl der Einträge in einer Protokolldatei oder die Häufigkeit, mit der ein Beitrag in einem sozialen Netzwerk angesehen wurde, nachzuverfolgen. Die folgenden Einschränkungen gelten für counter Spalten:

  • Eine Spalte des Typs counter darf nicht Teil primary key einer Tabelle sein.

  • In einer Tabelle, die eine oder mehrere Spalten vom Typ enthältcounter, 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 Verlust der Verbindung zu 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 Description

blob

Stellt beliebige Byte dar.

Typ BOOLEAN

Datentyp Description

boolean

Steht für true oderfalse.

Time-related Typen

Datentyp Description

date

Eine Zeichenfolge im Format<yyyy>-<mm>-<dd>.

timestamp

64-Bit-Ganzzahl mit Vorzeichen, die das Datum und die Uhrzeit seit der Epoche (1. Januar 1970 um 00:00:00 GMT) in Millisekunden angibt.

timeuuid

Stellt eine UUID der Version 1 dar. https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)

Sammlungstypen

Datentyp Description

list

Stellt eine geordnete Sammlung literaler Elemente dar.

map

Stellt eine ungeordnete Sammlung von Schlüssel-Wert-Paaren dar.

set

Stellt eine ungeordnete Sammlung von einem oder mehreren Literalelementen dar.

Sie deklarieren eine Sammlungsspalte, 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 von erstellenTEXT, oder Sie können ein MAP Von TEXT - und INT Schlüssel-Wert-Paare erstellen, wie im folgenden Beispiel gezeigt.

SET <TEXT> MAP <TEXT, INT>

Eine Sammlung, die nicht eingefroren ist, ermöglicht es Ihnen, Aktualisierungen an jedem einzelnen Prüfelement vorzunehmen. Client-side Zeitstempel und TTL-Einstellungen (Time to Live) werden für einzelne Elemente gespeichert.

Wenn Sie das FROZEN Schlüsselwort für einen Sammlungstyp verwenden, werden die Werte der Sammlung in einen einzigen unveränderlichen Wert serialisiert, und Amazon Keyspaces behandelt sie wie einen. BLOB Dies ist eine eingefrorene Sammlung. Eine INSERT UPDATE OR-Anweisung überschreibt die gesamte eingefrorene Sammlung. Sie können keine Aktualisierungen an einzelnen Elementen in einer eingefrorenen Sammlung vornehmen.

Client-side Zeitstempel und TTL-Einstellungen (Time to Live) gelten für die gesamte eingefrorene Sammlung, nicht für einzelne Elemente. FrozenSammlungsspalten können Teil PRIMARY KEY einer Tabelle sein.

Sie können eingefrorene Sammlungen verschachteln. Beispielsweise können Sie a MAP innerhalb eines definieren, SET wenn das FROZEN Schlüsselwort verwendet MAP wird, wie im folgenden Beispiel gezeigt.

SET <FROZEN> <MAP <TEXT, INT>>>

Amazon Keyspaces unterstützt standardmäßig die Verschachtelung von eingefrorenen Sammlungen auf bis zu 8 Ebenen. Weitere Informationen finden Sie unter Amazon Keyspaces-Servicekontingente. Weitere Informationen zu funktionalen Unterschieden mit Apache Cassandra finden Sie unter. FROZENSammlungen Weitere Hinweise zur CQL-Syntax finden Sie unter CREATE TABLE und. ALTER TABLE

Typ „Tupel“

Der tuple Datentyp stellt eine begrenzte Gruppe von Literalelementen dar. 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 Description

inet

Eine Zeichenfolge, die eine IP-Adresse im IPv4- oder IPv6-Format darstellt.

Statisch

In einer Amazon Keyspaces-Tabelle mit Cluster-Spalten 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.

User-defined Typen (UDTs)

Amazon Keyspaces unterstützt benutzerdefinierte Typen (UDTs). Sie können jeden gültigen Amazon Keyspaces-Datentyp verwenden, um ein UDT zu erstellen, einschließlich Sammlungen und anderer vorhandener UDTs. Sie erstellen UDTs in einem Schlüsselraum und können sie verwenden, um Spalten in jeder Tabelle im Schlüsselraum zu definieren.

Weitere Hinweise zur CQL-Syntax finden Sie unter. User-defined Typen (UDTs) Weitere Hinweise zur Arbeit mit UDTs finden Sie unter. User-defined Typen (UDTs) in Amazon Keyspaces

Informationen darüber, wie viele UDTs pro Schlüsselraum unterstützt werden, welche Verschachtelungsebenen unterstützt werden und welche anderen Standardwerte und Kontingente für UDTs gelten, finden Sie unter. Kontingente und Standardwerte für benutzerdefinierte Typen (UDTs) in Amazon Keyspaces

JSON-Codierung der 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 verwendet, wenn Daten zusammen mit der Anweisung zurückgegeben werden. SELECT JSON

Für Einzelfeld-Datentypen wiefloat, int UUIDdate, und können Sie Daten auch als einfügen. string Für zusammengesetzte Datentypen und Sammlungen wie tuple maplist, und können Sie Daten auch als JSON oder als JSON string codierte Datei einfügen.

JSON-Datentyp In INSERT JSON Anweisungen akzeptierte Datentypen In SELECT JSON Anweisungen zurückgegebene Datentypen Hinweise

ascii

string string

Verwendet JSON-Zeichen-Escape-Zeichen\u.

bigint

integer, string integer

Die Zeichenfolge muss eine gültige 64-Bit-Ganzzahl sein.

blob

string string

Die Zeichenfolge sollte mit beginnen, 0x gefolgt von einer geraden Anzahl von Hexadezimalzahlen.

boolean

boolean, string boolean

Die Zeichenfolge muss entweder true oder seinfalse.

date

string string

Datum im FormatYYYY-MM-DD, Zeitzone UTC.

decimal

integer, float, string float

Kann im clientseitigen Decoder die 32-Bit- oder IEEE-754 64-Bit-Gleitkommagenauigkeit überschreiten.

double

integer, float, string float

Die Zeichenfolge muss eine gültige Ganzzahl oder ein Gleitkommawert sein.

float

integer, float, string float

Die Zeichenfolge muss eine gültige Ganzzahl oder ein Gleitkommawert sein.

inet

string string

IPv4- oder IPv6-Adresse.

int

integer, string integer

Die Zeichenfolge muss eine gültige 32-Bit-Ganzzahl sein.

list

list, string list

Verwendet die native JSON-Listendarstellung.

map

map, string map

Verwendet die native JSON-Kartendarstellung.

smallint

integer, string integer

Die Zeichenfolge muss eine gültige 16-Bit-Ganzzahl sein.

set

list, string list

Verwendet die native JSON-Listendarstellung.

text

string string

Verwendet JSON-Zeichen-Escape-Zeichen\u.

time

string string

Uhrzeit im FormatHH-MM-SS[.fffffffff].

timestamp

integer, string string

Ein Zeitstempel. Mit Zeichenkettenkonstanten können Sie Zeitstempel als Daten speichern. Datumsstempel mit Format YYYY-MM-DD HH:MM:SS.SSS werden zurückgegeben.

timeuuid

string string

Geben Sie 1 UUID ein. Informationen constants zum UUID-Format finden Sie unter.

tinyint

integer, string integer

Die Zeichenfolge muss eine gültige 8-Bit-Ganzzahl sein.

tuple

list, string list

Verwendet die native JSON-Listendarstellung.

UDT

map, string map

Verwendet die native JSON-Kartendarstellung mit Feldnamen als Schlüssel.

uuid

string string

Informationen constants zum UUID-Format finden Sie unter.

varchar

string string

Verwendet JSON-Zeichen-Escape-Zeichen. \u

varint

integer, string integer

Variable Länge; im clientseitigen Decoder könnten 32-Bit- oder 64-Bit-Ganzzahlen überlaufen.