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 |
|---|---|
|
|
Stellt eine ASCII-Zeichenfolge dar. |
|
|
Stellt eine dar UTF-8 codierte Zeichenfolge. |
|
|
Stellt eine dar UTF-8 codierte Zeichenfolge ( |
Numerische Typen
| Datentyp | Description |
|---|---|
|
|
Steht für ein 64-Bit-Format mit Vorzeichen. |
|
|
Stellt einen 64-Bit-Ganzzahlzähler mit Vorzeichen dar. Weitere Informationen finden Sie unter Zähler. |
|
|
Stellt eine Dezimalzahl mit variabler Genauigkeit dar. |
|
|
Stellt eine 64-Bit-IEEE 754-Gleitkommazahl dar. |
|
|
Stellt eine 32-Bit-IEEE 754-Gleitkommazahl dar. |
|
|
Stellt eine 32-Bit-Ganzzahl mit Vorzeichen dar. |
|
|
Stellt einen Ganzzahlwert im Bereich +/-10^38 dar. |
Zähler
EIN counter Die Spalte enthält eine 64-Bit-Ganzzahl mit Vorzeichen. Der Zählerwert wird mit Hilfe von erhöht oder erniedrigt UPDATE Anweisung, und sie kann nicht direkt gesetzt werden. Das macht counter Spalten sind 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
counterkann nicht Teil von seinprimary keyeiner Tabelle. -
In einer Tabelle, die eine oder mehrere Spalten des Typs enthält
counter, alle Spalten in dieser Tabelle müssen vom Typ seincounter.
In Fällen, in denen eine Zähleraktualisierung fehlschlägt (z. B. aufgrund von Timeouts oder Verbindungsverlust 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 |
|---|---|
|
|
Stellt beliebige Byte dar. |
Typ BOOLEAN
| Datentyp | Description |
|---|---|
|
|
Stellt dar true oder false. |
Time-related Typen
| Datentyp | Description |
|---|---|
|
|
Eine Zeichenfolge im Format <yyyy>-<mm>-<dd>. |
|
|
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. |
|
|
Stellt eine dar Version 1 UUID |
Sammlungstypen
| Datentyp | Description |
|---|---|
|
|
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 Literalelementen dar. |
Sie deklarieren eine Sammlungsspalte, indem Sie den Sammlungstyp verwenden, gefolgt von einem anderen Datentyp (z. B. TEXT oder INT) in abgewinkelten Klammern. Sie können eine Spalte mit einem erstellen SET von TEXT, oder Sie können eine erstellen MAP von TEXT und INT Schlüssel-Wert-Paare, wie im folgenden Beispiel gezeigt.
SET <TEXT> MAP <TEXT, INT>
EIN nicht gefroren Mit der Sammlung können Sie Aktualisierungen an jedem einzelnen Sammlungselement vornehmen. Client-side Zeitstempel und TTL-Einstellungen (Time to Live) werden für einzelne Elemente gespeichert.
Wenn Sie das verwenden FROZEN Schlüsselwort für einen Sammlungstyp, die Werte der Sammlung werden zu einem einzigen unveränderlichen Wert serialisiert, und Amazon Keyspaces behandelt sie wie BLOB. Das ist ein gefroren Sammlung. Ein INSERT oder UPDATE Die 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. Frozen Sammlungsspalten können Teil von sein PRIMARY KEY einer Tabelle.
Sie können eingefrorene Sammlungen verschachteln. Sie können beispielsweise eine definieren MAP innerhalb einer SET wenn der MAP benutzt die FROZEN Schlüsselwort, 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.
Tupel-Typ
Das tuple Der 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 nicht benutzen FROZEN Schlüsselwort für Tupel. Das liegt daran, dass ein Tupel immer eingefroren ist und Sie Elemente nicht einzeln aktualisieren können.
Andere Typen
| Datentyp | Description |
|---|---|
|
|
Eine Zeichenfolge, die eine IP-Adresse im IPv4- oder IPv6-Format darstellt. |
Statisch
In einer Amazon Keyspaces-Tabelle mit Cluster-Spalten können Sie die STATIC Schlüsselwort, um eine statische Spalte eines beliebigen Typs zu erstellen.
Die folgende Anweisung ist ein Beispiel dafür.
my_column INT STATIC
Weitere Hinweise zum Arbeiten mit statischen Spalten finden Sie unter Schä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 Informationen 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 von Amazon Keyspaces-Datentypen
Amazon Keyspaces bietet dieselben JSON-Datentypzuordnungen wie Apache Cassandra. In der folgenden Tabelle werden die Datentypen beschrieben, die Amazon Keyspaces akzeptiert INSERT JSON Anweisungen und die Datentypen, die Amazon Keyspaces verwendet, wenn Daten mit dem zurückgegeben werden SELECT JSON Aussage.
Für Einzelfeld-Datentypen wie float, int, UUID, und date, Sie können Daten auch als einfügen string. Für zusammengesetzte Datentypen und Sammlungen, wie tuple, map, und list, Sie können Daten auch als JSON oder als codierte Datei einfügen JSON string.
| JSON-Datentyp | Datentypen, die akzeptiert wurden in INSERT JSON Aussagen |
Datentypen, die in zurückgegeben wurden SELECT JSON Aussagen |
Hinweise |
|---|---|---|---|
|
|
string |
string |
Verwendet JSON-Zeichenmaskierung |
|
|
integer, string |
integer |
Die Zeichenfolge muss eine gültige 64-Bit-Ganzzahl sein. |
|
|
string |
string |
Die Zeichenfolge sollte beginnen mit |
|
|
boolean, string |
boolean |
Die Zeichenfolge muss entweder |
|
|
string |
string |
Datum im Format |
|
|
integer, float, string |
float |
Kann 32-Bit oder 64-Bit überschreiten IEEE-754 Gleitkommagenauigkeit im clientseitigen Decoder. |
|
|
integer, float, string |
float |
Die Zeichenfolge muss eine gültige Ganzzahl oder ein Gleitkommawert sein. |
|
|
integer, float, string |
float |
Die Zeichenfolge muss eine gültige Ganzzahl oder ein Gleitkommawert sein. |
|
|
string |
string |
IPv4- oder IPv6-Adresse. |
|
|
integer, string |
integer |
Die Zeichenfolge muss eine gültige 32-Bit-Ganzzahl sein. |
|
|
list, string |
list |
Verwendet die native 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 native JSON-Listendarstellung. |
|
|
string |
string |
Verwendet JSON-Zeichenmaskierung |
|
|
string |
string |
Uhrzeit im Format |
|
|
integer, string |
string |
Ein Zeitstempel. Mit Zeichenkettenkonstanten können Sie Zeitstempel als Daten speichern. Datumsstempel mit Format |
|
|
string |
string |
Geben Sie 1 UUID ein. Vgl. constants für das UUID-Format. |
|
|
integer, string |
integer |
Die Zeichenfolge muss eine gültige 8-Bit-Ganzzahl sein. |
|
|
list, string |
list |
Verwendet die native JSON-Listendarstellung. |
|
|
map, string |
map |
Verwendet die native JSON-Kartendarstellung mit Feldnamen als Schlüssel. |
|
|
string |
string |
Siehe constants für das UUID-Format. |
|
|
string |
string |
Verwendet JSON-Zeichen-Escapes |
|
|
integer, string |
integer |
Variable Länge; im clientseitigen Decoder könnten 32-Bit- oder 64-Bit-Ganzzahlen überlaufen. |