View a markdown version of this page

Elementi 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 Cassandra Query Language (CQL) in Amazon Keyspaces

Scopri gli elementi 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 quotato. 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 Description

ascii

Rappresenta una stringa di caratteri ASCII.

text

Rappresenta un UTF-8 stringa codificata.

varchar

Rappresenta un UTF-8 stringa codificata (varchar è un alias per text).

Tipi numerici

Tipo di dati Description

bigint

Rappresenta una lunghezza firmata 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 IEEE 754 a 64 bit.

float

Rappresenta una virgola mobile IEEE 754 a 32 bit.

int

Rappresenta un int. firmato a 32 bit.

varint

Rappresenta un valore intero compreso nell'intervallo +/-10^38.

Contatori

UN counter la colonna contiene un numero intero con segno a 64 bit. Il valore del contatore viene incrementato o decrementato utilizzando UPDATE dichiarazione e non può essere impostato direttamente. Questo rende counter 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 a counter colonne:

  • Una colonna di tipo counter non può far parte di primary key di un tavolo.

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

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

Tipo di blob

Tipo di dati Description

blob

Rappresenta byte arbitrari.

Tipo booleano

Tipo di dati Description

boolean

Rappresenta true o false.

Time-related tipi

Tipo di dati Description

date

Una stringa nel formato <yyyy>-<mm>-<dd>.

timestamp

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

timeuuid

Rappresenta un UUID della versione 1.

Tipi di raccolta

Tipo di dati Description

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 o INT) tra parentesi angolate. È possibile creare una colonna con SET di TEXT, oppure puoi creare un MAP di TEXT e INT coppie chiave-valore, come mostrato nell'esempio seguente.

SET <TEXT> MAP <TEXT, INT>

A non congelato la raccolta consente di apportare aggiornamenti a ogni singolo elemento della raccolta. Client-side i timestamp e le impostazioni Time to Live (TTL) vengono memorizzati per i singoli elementi.

Quando si utilizza 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. Questo è un ghiacciato collezione. Un INSERT o UPDATE l'istruzione sovrascrive l'intera raccolta congelata. Non è possibile apportare aggiornamenti a singoli elementi all'interno di una raccolta congelata.

Client-side i timestamp e le impostazioni Time to Live (TTL) si applicano all'intera raccolta congelata, non ai singoli elementi. Frozen le colonne della raccolta possono far parte di PRIMARY KEY di una tabella.

Puoi annidare le raccolte congelate. Ad esempio, puoi definire un MAP all'interno di un SET se MAP sta usando il FROZEN parola chiave, come mostrato nell'esempio seguente.

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

Amazon Keyspaces supporta l'annidamento di un massimo di 8 livelli di raccolte bloccate 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 sintassi CQL, vedere CREATE TABLE e ALTER TABLE.

Tipo di tupla

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

Altri tipi

Tipo di dati Description

inet

Una stringa che rappresenta un indirizzo IP, in formato IPv4 o IPv6.

Statico

In una tabella Amazon Keyspaces con colonne di clustering, puoi utilizzare 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, vedere Stima del consumo di capacità per le colonne statiche in Amazon Keyspaces.

User-defined tipi (UDT)

Amazon Keyspaces supporta i tipi definiti dall'utente (UDT). Puoi utilizzare qualsiasi tipo di dati Amazon Keyspaces valido per creare un UDT, incluse raccolte e altri UDT esistenti. Gli UDT vengono creati in un keyspace e possono essere utilizzati per definire colonne in qualsiasi tabella nel keyspace.

Per ulteriori informazioni sulla sintassi CQL, vedere User-defined tipi (UDT). Per ulteriori informazioni sull'utilizzo degli UDT, vedere User-defined tipi (UDT) in Amazon Keyspaces.

Per vedere quanti UDT sono supportati per keyspace, i livelli di annidamento supportati e altri valori e quote predefiniti relativi agli UDT, vedi Quote e valori predefiniti per i tipi definiti dall'utente (UDT) in Amazon Keyspaces.

Codifica JSON dei tipi di dati Amazon Keyspaces

Amazon Keyspaces offre le stesse mappature dei tipi di dati JSON di Apache Cassandra. La tabella seguente descrive i tipi di dati in cui Amazon Keyspaces accetta INSERT JSON dichiarazioni e i tipi di dati utilizzati da Amazon Keyspaces per la restituzione di dati con SELECT JSON dichiarazione.

Per tipi di dati a campo singolo come float, int, UUID, e date, puoi anche inserire dati come string. Per tipi e raccolte di dati composti, ad esempio tuple, map, e list, puoi anche inserire dati come JSON o come codificati JSON string.

Tipo di dati JSON Tipi di dati accettati in INSERT JSON dichiarazioni Tipi di dati restituiti in SELECT JSON dichiarazioni Note

ascii

string string

Utilizza l'escape con caratteri JSON \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 true o false.

date

string string

Data in formato YYYY-MM-DD, fuso orario UTC.

decimal

integer, float, string float

Può superare i 32 o 64 bit IEEE-754 precisione in virgola mobile 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

Indirizzo IPv4 o 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'elenco JSON.

map

map, string map

Utilizza la rappresentazione cartografica JSON 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'elenco JSON.

text

string string

Utilizza l'escape con caratteri JSON \u.

time

string string

Ora del giorno in formato HH-MM-SS[.fffffffff].

timestamp

integer, string string

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

timeuuid

string string

UUID di tipo 1. Vedere constants per il formato UUID.

tinyint

integer, string integer

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

tuple

list, string list

Utilizza la rappresentazione nativa dell'elenco JSON.

UDT

map, string map

Utilizza la rappresentazione cartografica JSON nativa con i nomi dei campi come chiavi.

uuid

string string

Vedi constants per il formato UUID.

varchar

string string

Utilizza l'escape con caratteri JSON \u.

varint

integer, string integer

Lunghezza variabile; potrebbe contenere numeri interi a 32 o 64 bit nel decodificatore lato client.