As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Elementos do Cassandra Query Language (CQL) no Amazon Keyspaces
Saiba mais sobre os elementos da Cassandra Query Language (CQL) que são compatíveis com o Amazon Keyspaces, incluindo identificadores, constantes, termos e tipos de dados.
Tópicos
Identificadores
Identificadores (ou nomes) são usados para identificar tabelas, colunas e outros objetos. Um identificador pode ser citado ou não. O seguinte se aplica.
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
As seguintes constantes são definidas.
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+
Termos
Um termo denota o tipo de valores que são compatíveis. Os termos são definidos pelo seguinte.
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 dados
O Amazon Keyspaces é compatível com os seguintes tipos de dados:
Tipos de string
Tipo de dados | Descrição |
---|---|
|
Representa uma cadeia de ASCII caracteres. |
|
Representa uma string codificada em UTF -8. |
|
Representa uma string codificada em UTF -8 ( |
Tipos numéricos
Tipo de dados | Descrição |
---|---|
|
Representa um comprimento assinado de 64 bits. |
|
Representa um contador de números inteiros assinado de 64 bits. Para obter mais informações, consulte Contadores. |
|
Representa um decimal de precisão variável. |
|
Representa um ponto flutuante IEEE 754 de 64 bits. |
|
Representa um ponto flutuante IEEE 754 de 32 bits. |
|
Representa um int assinado de 32 bits. |
|
Representa um número inteiro de precisão arbitrária. |
Contadores
Uma counter
coluna contém um número inteiro assinado de 64 bits. O valor do contador é incrementado ou diminuído usando a instrução UPDATE e não pode ser definido diretamente. Isso torna as colunas counter
úteis para rastrear contagens. Por exemplo, você pode usar contadores para rastrear o número de entradas em um arquivo de log ou o número de vezes que uma publicação foi visualizada em uma rede social. As restrições a seguir se aplicam às colunas counter
:
-
Uma coluna do tipo
counter
não pode fazer parte doprimary key
de uma tabela. -
Em uma tabela que contém uma ou mais colunas do tipo
counter
, todas as colunas dessa tabela devem ser do tipocounter
.
Nos casos em que uma atualização do contador falha (por exemplo, devido ao tempo limite ou à perda de conexão com o Amazon Keyspaces), o cliente não sabe se o valor do contador foi atualizado. Se a atualização for repetida, a atualização do valor do contador poderá ser aplicada pela segunda vez.
Tipo Blob
Tipo de dados | Descrição |
---|---|
|
Representa bytes arbitrários. |
Tipo booliano
Tipo de dados | Descrição |
---|---|
|
Representa true ou false . |
Tipos relacionados ao tempo
Tipo de dados | Descrição |
---|---|
|
Número inteiro assinado de 64 bits representando a data e a hora desde a época (1º de janeiro de 1970 às 00:00:00GMT) em milissegundos. |
|
Representa uma versão 1 UUID |
Tipos de coleção
Tipo de dados | Descrição |
---|---|
|
Representa uma coleção ordenada de elementos literais. |
|
Representa uma coleção não ordenada de pares de chave-valor. |
|
Representa uma coleção não ordenada de um ou mais elementos literais. |
Você declara uma coluna de coleta usando o tipo de coleta seguido por outro tipo de dados (por exemplo, TEXT
ou INT
) entre parênteses angulares “<>”. Você pode criar uma coluna com um SET
de TEXT
, ou você pode criar um par de valor-chave MAP
de TEXT
e INT
, conforme mostrado no exemplo a seguir.
SET <TEXT> MAP <TEXT, INT>
Uma coleção não congelada permite que você faça atualizações em cada elemento individual da coleção. Os timestamps do lado do cliente e as configurações de Time to Live (TTL) são armazenados para elementos individuais.
Quando você usa a palavra-chave FROZEN
em um tipo de coleção, os valores da coleção são serializados em um único valor imutável, e o Amazon Keyspaces os trata como um BLOB
. Esta é uma coleção congelada. Uma declaração INSERT
ou UPDATE
sobrescreve toda a coleção congelada. Você não pode fazer atualizações em elementos individuais dentro de uma coleção congelada.
Os timestamps do lado do cliente e as configurações Time to Live (TTL) se aplicam a toda a coleção congelada, não a elementos individuais. Frozen
colunas de coleção podem fazer parte PRIMARY KEY
de uma tabela.
Você pode aninhar coleções congeladas. Por exemplo, você pode definir o MAP
dentro de um SET
se MAP
estiver usando a palavra-chave FROZEN
, conforme mostrado no exemplo a seguir.
SET <FROZEN> <MAP <TEXT, INT>>>
Por padrão, o Amazon Keyspaces suporta o aninhamento de até cinco níveis de coleções congeladas. Para obter mais informações, consulte Service Quotas do Amazon Keyspaces. Para obter mais informações sobre diferenças funcionais com o Apache Cassandra, consulte Coleções FROZEN. Para obter mais informações sobre CQL sintaxe, consulte CREATE TABLE e. ALTER TABLE
Tipo de tupla
O tipo de dados tuple
representa um grupo limitado de elementos literais. Você pode usar uma tupla como alternativa a user defined
type
. Você não precisa usar a palavra-chave FROZEN
para tuplas. Isso ocorre porque uma tupla está sempre congelada e você não pode atualizar elementos individualmente.
Outros tipos
Tipo de dados | Descrição |
---|---|
|
Uma string representando um endereço IP, em um IPv4 ou no IPv6 formato. |
Estático
Em uma tabela do Amazon Keyspaces com colunas de agrupamento, você pode usar a STATIC
palavra-chave para criar uma coluna estática de qualquer tipo.
A instrução a seguir é um exemplo disso.
my_column INT STATIC
Para obter mais informações sobre como trabalhar com colunas estáticas, consulteEstime o consumo de capacidade para colunas estáticas no Amazon Keyspaces.
JSONcodificação dos tipos de dados do Amazon Keyspaces
O Amazon Keyspaces oferece os mesmos mapeamentos de tipos de JSON dados que o Apache Cassandra. A tabela a seguir descreve os tipos de dados que o Amazon Keyspaces aceita em declarações INSERT JSON
e os tipos de dados que o Amazon Keyspaces usa ao retornar dados com a declaração SELECT JSON
.
Para tipos de dados de campo único como float
, int
, UUID
edate
, você também pode inserir dados como string
. Para tipos de dados compostos e coleções, comotuple
,map
, elist
, você também pode inserir dados como JSON ou como codificadosJSON string
.
JSONtipo de dados | Tipos de dados aceitos em declarações INSERT JSON |
Tipos de dados retornados em declarações SELECT JSON |
Observações |
---|---|---|---|
|
string |
string |
Usa JSON o escape do personagem |
|
integer, string |
integer |
A string deve ser um número inteiro válido de 64 bits. |
|
string |
string |
A string deve começar com |
|
boolean, string |
boolean |
String deve ser |
|
string |
string |
Data em formato |
|
integer, float, string |
float |
Pode exceder a precisão de ponto flutuante IEEE -754 de 32 bits ou 64 bits no decodificador do lado do cliente. |
|
integer, float, string |
float |
A string deve ser um número inteiro ou flutuante válido. |
|
integer, float, string |
float |
A string deve ser um número inteiro ou flutuante válido. |
|
string |
string |
IPv4ou IPv6 endereço. |
|
integer, string |
integer |
A string deve ser um número inteiro válido de 32 bits. |
|
list, string |
list |
Usa a representação da JSON lista nativa. |
|
map, string |
map |
Usa a representação nativa do JSON mapa. |
|
integer, string |
integer |
A string deve ser um número inteiro válido de 16 bits. |
|
list, string |
list |
Usa a representação da JSON lista nativa. |
|
string |
string |
Usa JSON o escape do personagem |
|
string |
string |
Hora do dia em formato |
|
integer, string |
string |
Um carimbo de data/hora. As constantes de string permitem que você armazene carimbos de data/hora como datas. Os carimbos de data com formato |
|
string |
string |
Tipo 1UUID. Consulte constants o UUID formato. |
|
integer, string |
integer |
A string deve ser um número inteiro válido de 8 bits. |
|
list, string |
list |
Usa a representação da JSON lista nativa. |
|
string |
string |
Consulte constants o UUID formato. |
|
string |
string |
Usa JSON o escape do personagem |
|
integer, string |
integer |
Comprimento variável; pode ultrapassar números inteiros de 32 bits ou 64 bits no decodificador do lado do cliente. |