Éléments du langage de requête Cassandra (CQL) dans Amazon Keyspaces - Amazon Keyspaces (pour Apache Cassandra)

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.

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

ascii

Représente une chaîne de caractères ASCII.

text

Représente une chaîne encodée UTF-8.

varchar

Représente une chaîne encodée UTF-8 (varchar est un alias pour text).

Types numériques

Type de données Description

bigint

Représente un entier long signé 64 bits.

counter

Représente un compteur d'entier signé 64 bits. Pour de plus amples informations, veuillez consulter Compteurs.

decimal

Représente une décimale de précision variable.

double

Représente une virgule flottante IEEE 754 64 bits.

float

Représente une virgule flottante IEEE 754 32 bits.

int

Représente un entier signé 32 bits.

varint

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 la primary 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 type counter.

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

blob

Représente les octets arbitraires.

Type Boolean

Type de données Description

boolean

Représente true ou false.

Types liés au temps

Type de données Description

date

Une chaîne au format<yyyy>-<mm>-<dd>.

timestamp

Entier signé de 64 bits représentant la date et l'heure depuis l'époque (1er janvier 1970 à 00:00:00 GMT) en millisecondes.

timeuuid

Représente un UUID version 1.

Types de collections

Type de données Description

list

Représente une collection ordonnée d'éléments littéraux.

map

Représente une collection non ordonnée de paires clé-valeur.

set

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

inet

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

ascii

string string

Utilise l'échappement de caractères JSON\u.

bigint

integer, string integer

La chaîne doit être un entier de 64 bits valide.

blob

string string

La chaîne doit commencer 0x par un nombre pair de chiffres hexadécimaux.

boolean

boolean, string boolean

La chaîne doit être true soitfalse.

date

string string

Date au formatYYYY-MM-DD, fuseau horaire UTC.

decimal

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.

double

integer, float, string float

La chaîne doit être un entier ou un nombre à virgule flottante valide.

float

integer, float, string float

La chaîne doit être un entier ou un nombre à virgule flottante valide.

inet

string string

IPv4 ou IPv6 adresse.

int

integer, string integer

La chaîne doit être un entier 32 bits valide.

list

list, string list

Utilise la représentation de liste JSON native.

map

map, string map

Utilise la représentation cartographique JSON native.

smallint

integer, string integer

La chaîne doit être un entier de 16 bits valide.

set

list, string list

Utilise la représentation de liste JSON native.

text

string string

Utilise l'échappement de caractères JSON\u.

time

string string

Heure du jour au formatHH-MM-SS[.fffffffff].

timestamp

integer, string string

Horodatage. Les constantes de chaîne vous permettent de stocker des horodatages sous forme de dates. Les horodatages avec format YYYY-MM-DD HH:MM:SS.SSS sont renvoyés.

timeuuid

string string

Tapez 1 UUID. Voir constants pour le format UUID.

tinyint

integer, string integer

La chaîne doit être un entier de 8 bits valide.

tuple

list, string list

Utilise la représentation de liste JSON native.

UDT

map, string map

Utilise la représentation cartographique JSON native avec les noms de champs comme clés.

uuid

string string

Voir constants pour le format UUID.

varchar

string string

Utilise l'échappement de caractères JSON\u.

varint

integer, string integer

Longueur variable ; peut dépasser les nombres entiers de 32 bits ou 64 bits dans le décodeur côté client.