Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Éléments du langage de requête Cassandra (CQL) dans Amazon Keyspaces
Découvrez les éléments du langage de requête Cassandra (CQL) pris en charge par Amazon Keyspaces, notamment les identifiants, les constantes, les termes et les types de données.
Rubriques
Identifiants
Les identificateurs (ou noms) sont utilisés pour identifier les tables, colonnes et autres objets. Un identifiant peut être entre apostrophes ou pas. Les conditions suivantes s'appliquent :
identifier ::= unquoted_identifier | quoted_identifier unquoted_identifier ::= re('[a-zA-Z][a-zA-Z0-9_]*') quoted_identifier ::= '"' (any character where " can appear if doubled)+ '"'
Constantes
Les constantes suivantes sont définies.
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+
Conditions
Un terme désigne le type de valeurs prises en charge. Les termes sont définis par ce qui suit.
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
Types de données
Amazon Keyspaces prend en charge les types de données suivants :
Types de chaîne
Type de données | Description |
---|---|
|
Représente une chaîne de caractères ASCII. |
|
Représente une chaîne encodée UTF-8. |
|
Représente une chaîne encodée UTF-8 ( |
Types numériques
Type de données | Description |
---|---|
|
Représente un entier long signé 64 bits. |
|
Représente un compteur d'entier signé 64 bits. Pour de plus amples informations, veuillez consulter Compteurs. |
|
Représente une décimale de précision variable. |
|
Représente une virgule flottante IEEE 754 64 bits. |
|
Représente une virgule flottante IEEE 754 32 bits. |
|
Représente un entier signé 32 bits. |
|
Représente un entier de précision arbitraire. |
Compteurs
Une colonne counter
contient un entier signé 64 bits. La valeur du compteur est incrémentée ou décrémentée à l'aide de l'instruction UPDATE, et ne peut pas être définie directement. Cela rend les colonnes counter
utiles pour le suivi des dénombrements. Par exemple, vous pouvez utiliser des compteurs pour suivre le nombre d'entrées dans un fichier journal ou le nombre de fois qu'une publication a été vue sur un réseau social. Les restrictions ci-après s'appliquent aux colonnes counter
:
-
Une colonne de type
counter
ne peut pas faire partie de laprimary key
d'une table. -
Dans une table qui contient une ou plusieurs colonnes de type
counter
, toutes les colonnes de cette table doivent être de typecounter
.
Dans les cas où la mise à jour d'un compteur échoue (par exemple, en raison d'un délai d'attente ou d'une perte de connexion avec Amazon Keyspaces), le client ne sait pas si la valeur du compteur a été mise à jour. Si la mise à jour est réessayée, la mise à jour de la valeur du compteur peut être appliquée une deuxième fois.
Type de blob
Type de données | Description |
---|---|
|
Représente les octets arbitraires. |
Type Boolean
Type de données | Description |
---|---|
|
Représente true ou false . |
Types liés au temps
Type de données | Description |
---|---|
|
Une chaîne au format<yyyy>-<mm>-<dd> . |
|
Entier signé de 64 bits représentant la date et l'heure depuis l'époque (1er janvier 1970 à 00:00:00 GMT) en millisecondes. |
|
Représente un UUID version 1 |
Types de collections
Type de données | Description |
---|---|
|
Représente une collection ordonnée d'éléments littéraux. |
|
Représente une collection non ordonnée de paires clé-valeur. |
|
Représente une collection non ordonnée d'un ou plusieurs éléments littéraux. |
Vous déclarez une colonne de collection en utilisant le type de collection suivi d'un autre type de données (par exemple, TEXT
ouINT
) entre crochets. Vous pouvez créer une colonne avec un SET
deTEXT
, ou vous pouvez créer une paire clé-valeur TEXT
et une MAP
paire INT
clé-valeur, comme indiqué dans l'exemple suivant.
SET <TEXT> MAP <TEXT, INT>
Une collection non figée vous permet de mettre à jour chaque élément de collection individuel. Les horodatages côté client et les paramètres de durée de vie (TTL) sont enregistrés pour les éléments individuels.
Lorsque vous utilisez le FROZEN
mot clé sur un type de collection, les valeurs de la collection sont sérialisées en une seule valeur immuable, et Amazon Keyspaces les traite comme un. BLOB
Il s'agit d'une collection surgelée. Une UPDATE
déclaration INSERT
OR remplace l'ensemble de la collection Frozen. Vous ne pouvez pas mettre à jour des éléments individuels d'une collection figée.
Les paramètres d'horodatage et de durée de vie (TTL) côté client s'appliquent à l'ensemble de la collection figée, et non à des éléments individuels. Frozen
les colonnes de collection peuvent faire partie PRIMARY KEY
d'un tableau.
Vous pouvez imbriquer des collections congelées. Par exemple, vous pouvez définir un MAP
dans un SET
si le FROZEN
mot clé MAP
est utilisé, comme illustré dans l'exemple suivant.
SET <FROZEN> <MAP <TEXT, INT>>>
Amazon Keyspaces prend en charge l'imbrication d'un maximum de 8 niveaux de collections figées par défaut. Pour de plus amples informations, veuillez consulter Quotas de service Amazon Keyspaces. Pour plus d'informations sur les différences fonctionnelles avec Apache Cassandra, consultezFROZENcollections. Pour plus d'informations sur la syntaxe CQL, consultez CREATE TABLE etALTER TABLE.
Type de tuple
Le type de tuple
données représente un groupe limité d'éléments littéraux. Vous pouvez utiliser un tuple comme alternative à unuser defined
type
. Il n'est pas nécessaire d'utiliser le FROZEN
mot-clé pour les tuples. En effet, un tuple est toujours figé et vous ne pouvez pas mettre à jour les éléments individuellement.
Autres types
Type de données | Description |
---|---|
|
Chaîne représentant une adresse IP, au IPv6 format IPv4 ou au format. |
Statique
Dans un tableau Amazon Keyspaces avec des colonnes de regroupement, vous pouvez utiliser le STATIC
mot clé pour créer une colonne statique de n'importe quel type.
La déclaration suivante en est un exemple.
my_column INT STATIC
Pour plus d'informations sur l'utilisation de colonnes statiques, consultezEstimation de la consommation de capacité pour les colonnes statiques dans Amazon Keyspaces.
Types définis par l'utilisateur () UDTs
Amazon Keyspaces prend en charge les types définis par l'utilisateur (). UDTs Vous pouvez utiliser n'importe quel type de données Amazon Keyspaces valide pour créer un UDT, y compris les collections et autres données existantes. UDTs Vous créez UDTs dans un espace de touches et vous pouvez les utiliser pour définir des colonnes dans n'importe quel tableau de l'espace de touches.
Pour plus d'informations sur la syntaxe CQL, consultezTypes définis par l'utilisateur () UDTs. Pour plus d'informations sur l'utilisation UDTs, consultezTypes définis par l'utilisateur (UDTs) dans Amazon Keyspaces.
Pour connaître le nombre de valeurs UDTs prises en charge par espace de touches, les niveaux d'imbrication pris en charge, ainsi que les autres valeurs par défaut et quotas associés UDTs, voir. Quotas et valeurs par défaut pour les types définis par l'utilisateur (UDTs) dans Amazon Keyspaces
Encodage JSON des types de données Amazon Keyspaces
Amazon Keyspaces propose les mêmes mappages de types de données JSON qu'Apache Cassandra. Le tableau suivant décrit les types de données qu'Amazon Keyspaces accepte dans les INSERT JSON
instructions et les types de données qu'Amazon Keyspaces utilise lorsqu'il renvoie des données avec l'instruction. SELECT JSON
Pour les types de données à champ unique tels que float
int
,UUID
, etdate
, vous pouvez également insérer des données sous forme destring
. Pour les types de données composés et les collections, tels que tuple
map
, etlist
, vous pouvez également insérer des données au format JSON ou sous forme codéeJSON string
.
Type de données JSON | Types de données acceptés dans les INSERT JSON relevés |
Types de données renvoyés dans les SELECT JSON relevés |
Remarques |
---|---|---|---|
|
string |
string |
Utilise l'échappement de caractères JSON |
|
integer, string |
integer |
La chaîne doit être un entier de 64 bits valide. |
|
string |
string |
La chaîne doit commencer |
|
boolean, string |
boolean |
La chaîne doit être |
|
string |
string |
Date au format |
|
integer, float, string |
float |
Peut dépasser la précision à virgule flottante IEEE-754 32 bits ou 64 bits dans le décodeur côté client. |
|
integer, float, string |
float |
La chaîne doit être un entier ou un nombre à virgule flottante valide. |
|
integer, float, string |
float |
La chaîne doit être un entier ou un nombre à virgule flottante valide. |
|
string |
string |
IPv4 ou IPv6 adresse. |
|
integer, string |
integer |
La chaîne doit être un entier 32 bits valide. |
|
list, string |
list |
Utilise la représentation de liste JSON native. |
|
map, string |
map |
Utilise la représentation cartographique JSON native. |
|
integer, string |
integer |
La chaîne doit être un entier de 16 bits valide. |
|
list, string |
list |
Utilise la représentation de liste JSON native. |
|
string |
string |
Utilise l'échappement de caractères JSON |
|
string |
string |
Heure du jour au format |
|
integer, string |
string |
Horodatage. Les constantes de chaîne vous permettent de stocker des horodatages sous forme de dates. Les horodatages avec format |
|
string |
string |
Tapez 1 UUID. Voir constants pour le format UUID. |
|
integer, string |
integer |
La chaîne doit être un entier de 8 bits valide. |
|
list, string |
list |
Utilise la représentation de liste JSON native. |
|
map, string |
map |
Utilise la représentation cartographique JSON native avec les noms de champs comme clés. |
|
string |
string |
Voir constants pour le format UUID. |
|
string |
string |
Utilise l'échappement de caractères JSON |
|
integer, string |
integer |
Longueur variable ; peut dépasser les nombres entiers de 32 bits ou 64 bits dans le décodeur côté client. |