Elementi di Cassandra Query Language (CQL) in Amazon Keyspaces - Amazon Keyspaces (per Apache Cassandra)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Elementi di Cassandra Query Language (CQL) in Amazon Keyspaces

Scopri gli elementi del Cassandra Query Language (CQL) supportati da Amazon Keyspaces, inclusi identificatori, costanti, termini e tipi di dati.

Identificatori

Gli identificatori (o nomi) vengono utilizzati per identificare tabelle, colonne e altri oggetti. Un identificatore può essere citato o non citato. Si applica quanto segue.

identifier ::= unquoted_identifier | quoted_identifier unquoted_identifier ::= re('[a-zA-Z][a-zA-Z0-9_]*') quoted_identifier ::= '"' (any character where " can appear if doubled)+ '"'

Costanti

Sono definite le seguenti costanti.

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+

Termini

Un termine indica il tipo di valori supportati. I termini sono definiti come segue.

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

Tipi di dati

Amazon Keyspaces supporta i seguenti tipi di dati:

Tipo stringa

Tipo di dati Descrizione

ascii

Rappresenta una stringa di ASCII caratteri.

text

Rappresenta una stringa codificata a UTF -8.

varchar

Rappresenta una stringa con codifica UTF -8 (varcharè un alias per). text

Tipi numerici

Tipo di dati Descrizione

bigint

Rappresenta un valore long firmato a 64 bit.

counter

Rappresenta un contatore intero con segno a 64 bit. Per ulteriori informazioni, consulta Contatori.

decimal

Rappresenta un decimale a precisione variabile.

double

Rappresenta una virgola mobile 754 a 64 bit. IEEE

float

Rappresenta una virgola mobile IEEE 754 a 32 bit.

int

Rappresenta un int. firmato a 32 bit.

varint

Rappresenta un numero intero di precisione arbitraria.

Contatori

Una counter colonna contiene un numero intero con segno a 64 bit. Il valore del contatore viene incrementato o diminuito utilizzando l'UPDATEistruzione e non può essere impostato direttamente. Ciò rende counter le colonne utili per tenere traccia dei conteggi. Ad esempio, puoi utilizzare i contatori per tenere traccia del numero di voci in un file di registro o del numero di volte in cui un post è stato visualizzato su un social network. Le seguenti restrizioni si applicano alle counter colonne:

  • Una colonna di tipo counter non può far parte primary key di una tabella.

  • In una tabella che contiene una o più colonne di tipocounter, tutte le colonne della tabella devono essere di tipocounter.

Nei casi in cui un controaggiornamento fallisce (ad esempio, a causa di timeout o perdita di connessione con Amazon Keyspaces), il client non sa se il valore del contatore è stato aggiornato. Se l'aggiornamento viene riprovato, l'aggiornamento al valore del contatore potrebbe essere applicato una seconda volta.

Tipo di BLOB

Tipo di dati Descrizione

blob

Rappresenta byte arbitrari.

Tipo booleano

Tipo di dati Descrizione

boolean

Rappresenta true o. false

Tipi relativi al tempo

Tipo di dati Descrizione

timestamp

Numero intero con segno a 64 bit che rappresenta la data e l'ora dall'epoca (1° gennaio 1970 alle 00:00:00GMT) in millisecondi.

timeuuid

Rappresenta UUID una versione 1.

Tipi di raccolta

Tipo di dati Descrizione

list

Rappresenta una raccolta ordinata di elementi letterali.

map

Rappresenta una raccolta non ordinata di coppie chiave-valore.

set

Rappresenta una raccolta non ordinata di uno o più elementi letterali.

Si dichiara una colonna di raccolta utilizzando il tipo di raccolta seguito da un altro tipo di dati (ad esempio TEXT oINT) tra parentesi angolate. È possibile creare una colonna con un SET of TEXT oppure creare una coppia MAP di TEXT e INT chiave-valore, come illustrato nell'esempio seguente.

SET <TEXT> MAP <TEXT, INT>

Una raccolta non congelata consente di aggiornare ogni singolo elemento della raccolta. I timestamp sul lato client e le impostazioni Time to Live (TTL) vengono memorizzati per i singoli elementi.

Quando utilizzi la FROZEN parola chiave su un tipo di raccolta, i valori della raccolta vengono serializzati in un unico valore immutabile e Amazon Keyspaces li tratta come un. BLOB Questa è una collezione congelata. Un'UPDATEistruzione INSERT or sovrascrive l'intera raccolta congelata. Non è possibile aggiornare singoli elementi all'interno di una raccolta congelata.

I timestamp sul lato client e le impostazioni Time to Live (TTL) si applicano all'intera raccolta congelata, non ai singoli elementi. Frozenle colonne della raccolta possono far parte di una tabella. PRIMARY KEY

Puoi annidare raccolte congelate. Ad esempio, potete definire a MAP entro a SET se MAP sta utilizzando la FROZEN parola chiave, come illustrato nell'esempio seguente.

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

Amazon Keyspaces supporta l'annidamento di un massimo di cinque livelli di raccolte congelate per impostazione predefinita. Per ulteriori informazioni, consulta Quote di servizio Amazon Keyspaces. Per ulteriori informazioni sulle differenze funzionali con Apache Cassandra, consulta. FROZENcollezioni Per ulteriori informazioni sulla CQL sintassi, vedere e. CREATE TABLE ALTER TABLE

Tipo di tupla

Il tipo di tuple dati rappresenta un gruppo limitato di elementi letterali. Puoi usare una tupla come alternativa a. user defined type Non è necessario utilizzare la FROZEN parola chiave per le tuple. Questo perché una tupla è sempre congelata e non è possibile aggiornare gli elementi singolarmente.

Altri tipi

Tipo di dati Descrizione

inet

Una stringa che rappresenta un indirizzo IP, in uno dei due IPv4 IPv6 formati.

Statico

In una tabella Amazon Keyspaces con colonne di clustering, puoi utilizzare la STATIC parola chiave per creare una colonna statica di qualsiasi tipo.

La seguente dichiarazione ne è un esempio.

my_column INT STATIC

Per ulteriori informazioni sull'utilizzo delle colonne statiche, vedereStima del consumo di capacità per le colonne statiche in Amazon Keyspaces.

JSONcodifica dei tipi di dati di Amazon Keyspaces

Amazon Keyspaces offre le stesse mappature JSON dei tipi di dati di Apache Cassandra. La tabella seguente descrive i tipi di dati che Amazon Keyspaces accetta nelle INSERT JSON istruzioni e i tipi di dati utilizzati da Amazon Keyspaces quando restituisce dati con l'istruzione. SELECT JSON

Per tipi di dati a campo singolo comefloat,int, e UUIDdate, puoi anche inserire dati come file. string Per i tipi di dati e le raccolte compostituple, ad esempiomap, elist, puoi anche inserire dati come JSON o come codificatiJSON string.

JSONtipo di dati Tipi di dati accettati nelle INSERT JSON dichiarazioni Tipi di dati restituiti nelle SELECT JSON istruzioni Note

ascii

string string

Usa JSON character escape\u.

bigint

integer, string integer

La stringa deve essere un numero intero valido a 64 bit.

blob

string string

La stringa deve iniziare con 0x seguita da un numero pari di cifre esadecimali.

boolean

boolean, string boolean

La stringa deve essere una delle due opzionitrue. false

date

string string

Formato della dataYYYY-MM-DD, fuso orarioUTC.

decimal

integer, float, string float

Può superare la precisione a virgola mobile IEEE -754 a 32 o 64 bit nel decoder lato client.

double

integer, float, string float

La stringa deve essere un numero intero o un float valido.

float

integer, float, string float

La stringa deve essere un numero intero o un float valido.

inet

string string

IPv4o indirizzo. IPv6

int

integer, string integer

La stringa deve essere un numero intero valido a 32 bit.

list

list, string list

Utilizza la rappresentazione nativa dell'JSONelenco.

map

map, string map

Utilizza la rappresentazione JSON cartografica nativa.

smallint

integer, string integer

La stringa deve essere un numero intero valido a 16 bit.

set

list, string list

Utilizza la rappresentazione nativa dell'JSONelenco.

text

string string

Usa l'escape JSON dei personaggi\u.

time

string string

Ora del giorno nel formatoHH-MM-SS[.fffffffff].

timestamp

integer, string string

Un Timestamp. Le costanti di stringa consentono di memorizzare i timestamp come date. Vengono restituiti timbri datari con formato. YYYY-MM-DD HH:MM:SS.SSS

timeuuid

string string

Tipo 1UUID. Vedi constants per il UUID formato.

tinyint

integer, string integer

La stringa deve essere un numero intero valido a 8 bit.

tuple

list, string list

Utilizza la rappresentazione nativa dell'JSONelenco.

uuid

string string

Vedi constants per il UUID formato.

varchar

string string

Usa l'escape JSON dei personaggi\u.

varint

integer, string integer

Lunghezza variabile; potrebbe superare numeri interi a 32 o 64 bit nel decoder lato client.