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 une valeur entière comprise entre +/-10^38. |
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é consultée sur un réseau social. Les restrictions ci-après s'appliquent aux colonnes counter :
-
Une colonne de type
counterne peut pas faire partie de laprimary keyd'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. Frozenles 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 floatint,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 tuplemap, 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 flottant valide. |
|
|
integer, float, string |
float |
La chaîne doit être un entier ou un nombre flottant 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. |