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 |
|---|---|
|
|
Rappresenta una stringa di caratteri ASCII. |
|
|
Rappresenta una stringa UTF-8 codificata. |
|
|
Rappresenta una stringa UTF-8 codificata ( |
Tipi numerici
| Tipo di dati | Description |
|---|---|
|
|
Rappresenta una lunghezza firmata a 64 bit. |
|
|
Rappresenta un contatore intero con segno a 64 bit. Per ulteriori informazioni, consulta Contatori. |
|
|
Rappresenta un decimale a precisione variabile. |
|
|
Rappresenta una virgola mobile IEEE 754 a 64 bit. |
|
|
Rappresenta una virgola mobile IEEE 754 a 32 bit. |
|
|
Rappresenta un int. firmato a 32 bit. |
|
|
Rappresenta un valore intero compreso nell'intervallo +/-10^38. |
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
counternon può far parteprimary keydi una tabella. -
In una tabella che contiene una o più colonne di tipo
counter, tutte le colonne della tabella devono essere di tipocounter.
Nei casi in cui un aggiornamento del contatore non riesce (ad esempio, a causa di timeout o perdita della 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 |
|---|---|
|
|
Rappresenta byte arbitrari. |
Tipo booleano
| Tipo di dati | Description |
|---|---|
|
|
Rappresenta true o. false |
Time-related tipi
| Tipo di dati | Description |
|---|---|
|
|
Una stringa nel formato<yyyy>-<mm>-<dd>. |
|
|
Numero intero con segno a 64 bit che rappresenta la data e l'ora trascorse dall'epoca (1° gennaio 1970 alle 00:00:00 GMT) in millisecondi. |
|
|
Rappresenta un UUID della versione 1. https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address) |
Tipi di raccolta
| Tipo di dati | Description |
|---|---|
|
|
Rappresenta una raccolta ordinata di elementi letterali. |
|
|
Rappresenta una raccolta non ordinata di coppie chiave-valore. |
|
|
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 valore SET of TEXT oppure è possibile creare coppie MAP of TEXT e INT chiave-valore, come mostrato nell'esempio seguente.
SET <TEXT> MAP <TEXT, INT>
Una raccolta non bloccata 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 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 raccolta congelata. Un'UPDATEistruzione INSERT or 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. Frozenle colonne della raccolta possono far parte di una tabellaPRIMARY KEY.
Puoi annidare le raccolte congelate. Ad esempio, puoi definire un MAP all'interno di a SET se utilizza MAP la 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 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 bloccata e non puoi aggiornare gli elementi singolarmente.
Altri tipi
| Tipo di dati | Description |
|---|---|
|
|
Una stringa che rappresenta un indirizzo IP, in formato IPv4 o IPv6. |
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.
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, vedere. 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 che Amazon Keyspaces accetta nelle INSERT JSON istruzioni e i tipi di dati utilizzati da Amazon Keyspaces per restituire i dati con l'istruzione. SELECT JSON
Per i tipi di dati a campo singolo come floatint,UUID, edate, puoi anche inserire dati come. string Per i tipi e le raccolte di dati composti, ad esempio tuplemap, elist, puoi anche inserire dati come JSON o come codificati. JSON string
| Tipo di dati JSON | Tipi di dati accettati nelle dichiarazioni INSERT JSON |
Tipi di dati restituiti nelle SELECT JSON dichiarazioni |
Note |
|---|---|---|---|
|
|
string |
string |
Utilizza l'escape |
|
|
integer, string |
integer |
La stringa deve essere un numero intero valido a 64 bit. |
|
|
string |
string |
La stringa deve iniziare con |
|
|
boolean, string |
boolean |
La stringa deve essere uno |
|
|
string |
string |
Data in formato |
|
|
integer, float, string |
float |
Può superare la precisione in IEEE-754 virgola mobile di 32 o 64 bit nel decoder lato client. |
|
|
integer, float, string |
float |
La stringa deve essere un numero intero o float valido. |
|
|
integer, float, string |
float |
La stringa deve essere un numero intero o un float valido. |
|
|
string |
string |
Indirizzo IPv4 o IPv6. |
|
|
integer, string |
integer |
La stringa deve essere un numero intero valido a 32 bit. |
|
|
list, string |
list |
Utilizza la rappresentazione nativa dell'elenco JSON. |
|
|
map, string |
map |
Utilizza la rappresentazione cartografica JSON nativa. |
|
|
integer, string |
integer |
La stringa deve essere un numero intero valido a 16 bit. |
|
|
list, string |
list |
Utilizza la rappresentazione nativa dell'elenco JSON. |
|
|
string |
string |
Utilizza l'escape con caratteri JSON. |
|
|
string |
string |
Ora del giorno in formato |
|
|
integer, string |
string |
Un Timestamp. Le costanti di stringa consentono di memorizzare i timestamp come date. Vengono restituiti i timbri di data con formato. |
|
|
string |
string |
UUID di tipo 1. Vedi constants per il formato UUID. |
|
|
integer, string |
integer |
La stringa deve essere un numero intero valido a 8 bit. |
|
|
list, string |
list |
Utilizza la rappresentazione nativa dell'elenco JSON. |
|
|
map, string |
map |
Utilizza la rappresentazione cartografica JSON nativa con i nomi dei campi come chiavi. |
|
|
string |
string |
Vedi constants per il formato UUID. |
|
|
string |
string |
Utilizza l'escape con caratteri JSON. |
|
|
integer, string |
integer |
Lunghezza variabile; potrebbe contenere numeri interi a 32 o 64 bit nel decodificatore lato client. |