Elementos de Cassandra Query Language (CQL) en Amazon Keyspaces - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Elementos de Cassandra Query Language (CQL) en Amazon Keyspaces

Obtenga información sobre los elementos de Cassandra Query Language (CQL) compatibles con Amazon Keyspaces, incluidos los identificadores, las constantes, los términos y los tipos de datos.

Identificadores

Los identificadores (o nombres) se utilizan para identificar tablas, columnas y otros objetos. Un identificador puede estar entre comillas o no. Se aplica lo siguiente.

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

Se definen las siguientes constantes.

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+

Términos

Un término denota el tipo de valores que se admiten. Los términos se definen del siguiente modo.

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

Tipos de datos

Amazon Keyspaces admite los siguientes tipos de datos:

Tipos de cadena

Tipo de datos Descripción

ascii

Representa una cadena de caracteres. ASCII

text

Representa una cadena codificada en UTF -8.

varchar

Representa una cadena codificada en UTF -8 (varchares un alias detext).

Tipos numéricos

Tipo de datos Descripción

bigint

Representa un entero largo con signo de 64 bits.

counter

Representa un contador entero con signo de 64 bits. Para obtener más información, consulte Contadores.

decimal

Representa un decimal de precisión variable.

double

Representa un punto flotante IEEE 754 de 64 bits.

float

Representa un punto flotante IEEE 754 de 32 bits.

int

Representa un entero con signo de 32 bits.

varint

Representa un entero de precisión arbitraria.

Contadores

Una columna counter contiene un entero con signo de 64 bits. El valor del contador se incrementa o decrementa mediante la instrucción UPDATE y no se puede establecer directamente. Esto hace que las columnas counter sean útiles para el seguimiento de recuentos. Por ejemplo, puede utilizar contadores para realizar un seguimiento del número de entradas en un archivo de registro o del número de veces que se ha visto una publicación en una red social. Se aplican las siguientes restricciones a las columnas counter:

  • Una columna de tipo counter no puede formar parte de la primary key de una tabla.

  • En una tabla que contenga una o más columnas de tipo counter, todas las columnas de esa tabla deben ser de tipo counter.

En los casos en que la actualización de un contador fallase (por ejemplo, debido a tiempos de espera o a la pérdida de conexión con Amazon Keyspaces), el cliente no sabe si el valor del contador se actualizó. Si se vuelve a intentar la actualización, es posible que la actualización del valor del contador se aplique por segunda vez.

Tipo de blob

Tipo de datos Descripción

blob

Representa bytes arbitrarios.

Tipo booleano

Tipo de datos Descripción

boolean

Representa true o false.

Tipos relacionados en el tiempo

Tipo de datos Descripción

timestamp

Entero de 64 bits con signo que representa la fecha y la hora desde la época (1 de enero de 1970 a las 00:00:00GMT) en milisegundos.

timeuuid

Representa una versión 1. UUID

Tipos de colección

Tipo de datos Descripción

list

Representa una colección ordenada de elementos literales.

map

Representa una colección desordenada de pares clave-valor.

set

Representa una colección desordenada de uno o más elementos literales.

Una columna de colección se declara utilizando el tipo de colección seguido de otro tipo de datos (por ejemplo, TEXT o INT) entre corchetes angulares. Puede crear una columna con un SET de TEXT o puede crear un MAP de TEXT y pares clave-valor INT, como se muestra en el siguiente ejemplo.

SET <TEXT> MAP <TEXT, INT>

Una colección no congelada le permite realizar actualizaciones en cada elemento individual de la colección. Las marcas de tiempo del cliente y los ajustes de Time to Live (TTL) se almacenan para los elementos individuales.

Al utilizar la palabra clave FROZEN en un tipo de colección, los valores de la colección se serializan en un único valor inmutable y Amazon Keyspaces los trata como un BLOB. Esto es una colección congelada. Una instrucción INSERT o UPDATE sobrescribe toda la colección congelada. No se pueden realizar actualizaciones de elementos individuales dentro de una colección congelada.

Las marcas de tiempo del cliente y los ajustes de Time to Live (TTL) se aplican a toda la colección congelada, no a elementos individuales. Frozenlas columnas de recopilación pueden formar parte de una tabla. PRIMARY KEY

Puede anidar colecciones congeladas. Por ejemplo, puede definir un MAP dentro de un SET si el MAP utiliza la palabra clave FROZEN, como se muestra en el siguiente ejemplo.

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

Amazon Keyspaces admite el anidamiento de hasta cinco niveles de colecciones congeladas de forma predeterminada. Para obtener más información, consulte Cuotas de servicio de Amazon Keyspaces. Para obtener más información sobre las diferencias funcionales con Apache Cassandra, consulte Colecciones FROZEN. Para obtener más información sobre CQL la sintaxis, consulte CREATE TABLE yALTER TABLE.

Tipo de tupla

El tipo de datos tuple representa un grupo acotado de elementos literales. Puede utilizar una tupla como alternativa a un user defined type. No es necesario que utilice la palabra clave FROZEN para las tuplas. Esto se debe a que una tupla siempre está congelada y no puede actualizar los elementos de forma individual.

Otros tipos

Tipo de datos Descripción

inet

Cadena que representa una dirección IP, en IPv4 cualquier IPv6 formato.

Estático

En una tabla de Amazon Keyspaces con columnas agrupadas en clústeres, puede utilizar la STATIC palabra clave para crear una columna estática de cualquier tipo.

La siguiente instrucción es un ejemplo de ello.

my_column INT STATIC

Para obtener más información sobre cómo trabajar con columnas estáticas, consulte. Estime el consumo de capacidad de las columnas estáticas en Amazon Keyspaces

JSONcodificación de los tipos de datos de Amazon Keyspaces

Amazon Keyspaces ofrece las mismas asignaciones de tipos de JSON datos que Apache Cassandra. En la siguiente tabla se describen los tipos de datos que Amazon Keyspaces acepta en las instrucciones INSERT JSON y los tipos de datos que Amazon Keyspaces utiliza al devolver datos con la instrucción SELECT JSON.

En los tipos de datos de campo único como float, int, UUID y date también puede insertar datos como string. Para colecciones y tipos de datos compuestos, comotuple, y maplist, también puede insertar datos codificados JSON o codificados. JSON string

JSONtipo de datos Tipos de datos aceptados en instrucciones INSERT JSON Tipos de datos devueltos en instrucciones SELECT JSON Notas

ascii

string string

Utiliza el escape de JSON caracteres\u.

bigint

integer, string integer

La cadena debe ser un entero válido de 64 bits.

blob

string string

La cadena debe empezar con 0x seguido de un número par de dígitos hexadecimales.

boolean

boolean, string boolean

La cadena debe ser true o false.

date

string string

Fecha en formatoYYYY-MM-DD, zona horariaUTC.

decimal

integer, float, string float

Puede superar la precisión de punto flotante de 32 o 64 IEEE bits (754) en el decodificador del lado del cliente.

double

integer, float, string float

La cadena debe ser un entero válido o flotante.

float

integer, float, string float

La cadena debe ser un entero válido o flotante.

inet

string string

IPv4IPv6o dirección.

int

integer, string integer

La cadena debe ser un entero válido de 32 bits.

list

list, string list

Utiliza la representación JSON de lista nativa.

map

map, string map

Utiliza la representación JSON cartográfica nativa.

smallint

integer, string integer

La cadena debe ser un entero válido de 16 bits.

set

list, string list

Utiliza la representación JSON de lista nativa.

text

string string

Utiliza el escape de JSON personajes\u.

time

string string

Hora del día en formato HH-MM-SS[.fffffffff].

timestamp

integer, string string

Una marca temporal. Las constantes de cadena permiten almacenar las marcas de tiempo como fechas. Se devuelven marcas de fecha con formato YYYY-MM-DD HH:MM:SS.SSS.

timeuuid

string string

Tipo 1UUID. Consulte constants el UUID formato.

tinyint

integer, string integer

La cadena debe ser un entero válido de 8 bits.

tuple

list, string list

Utiliza la representación JSON de lista nativa.

uuid

string string

Consulte constants el UUID formato.

varchar

string string

Utiliza el escape de JSON personajes\u.

varint

integer, string integer

Longitud variable; podría desbordar enteros de 32 o 64 bits en el decodificador del lado del cliente.