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.
Temas
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 |
---|---|
|
Representa una cadena de caracteres. ASCII |
|
Representa una cadena codificada en UTF -8. |
|
Representa una cadena codificada en UTF -8 ( |
Tipos numéricos
Tipo de datos | Descripción |
---|---|
|
Representa un entero largo con signo de 64 bits. |
|
Representa un contador entero con signo de 64 bits. Para obtener más información, consulte Contadores. |
|
Representa un decimal de precisión variable. |
|
Representa un punto flotante IEEE 754 de 64 bits. |
|
Representa un punto flotante IEEE 754 de 32 bits. |
|
Representa un entero con signo de 32 bits. |
|
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 laprimary 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 tipocounter
.
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 |
---|---|
|
Representa bytes arbitrarios. |
Tipo booleano
Tipo de datos | Descripción |
---|---|
|
Representa true o false . |
Tipos relacionados en el tiempo
Tipo de datos | Descripción |
---|---|
|
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. |
|
Representa una versión 1. UUID |
Tipos de colección
Tipo de datos | Descripción |
---|---|
|
Representa una colección ordenada de elementos literales. |
|
Representa una colección desordenada de pares clave-valor. |
|
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. Frozen
las 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 |
---|---|
|
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 map
list
, 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 |
---|---|---|---|
|
string |
string |
Utiliza el escape de JSON caracteres |
|
integer, string |
integer |
La cadena debe ser un entero válido de 64 bits. |
|
string |
string |
La cadena debe empezar con |
|
boolean, string |
boolean |
La cadena debe ser |
|
string |
string |
Fecha en formato |
|
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. |
|
integer, float, string |
float |
La cadena debe ser un entero válido o flotante. |
|
integer, float, string |
float |
La cadena debe ser un entero válido o flotante. |
|
string |
string |
IPv4IPv6o dirección. |
|
integer, string |
integer |
La cadena debe ser un entero válido de 32 bits. |
|
list, string |
list |
Utiliza la representación JSON de lista nativa. |
|
map, string |
map |
Utiliza la representación JSON cartográfica nativa. |
|
integer, string |
integer |
La cadena debe ser un entero válido de 16 bits. |
|
list, string |
list |
Utiliza la representación JSON de lista nativa. |
|
string |
string |
Utiliza el escape de JSON personajes |
|
string |
string |
Hora del día en formato |
|
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 |
|
string |
string |
Tipo 1UUID. Consulte constants el UUID formato. |
|
integer, string |
integer |
La cadena debe ser un entero válido de 8 bits. |
|
list, string |
list |
Utiliza la representación JSON de lista nativa. |
|
string |
string |
Consulte constants el UUID formato. |
|
string |
string |
Utiliza el escape de JSON personajes |
|
integer, string |
integer |
Longitud variable; podría desbordar enteros de 32 o 64 bits en el decodificador del lado del cliente. |