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 |
---|---|
|
Uma string no formato<yyyy>-<mm>-<dd> . |
|
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>>>
O Amazon Keyspaces suporta o agrupamento de até 8 níveis de coleções congeladas por padrão. 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 clustering, você pode usar a palavra-chave STATIC
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 trabalho com colunas estáticas, consulte Estimar o consumo de capacidade para colunas estáticas no Amazon Keyspaces.
Tipos definidos pelo usuário () UDTs
O Amazon Keyspaces oferece suporte a tipos definidos pelo usuário (). UDTs Você pode usar qualquer tipo de dados válido do Amazon Keyspaces para criar umUDT, incluindo coleções e outros existentes. UDTs Você cria UDTs em um espaço de chave e pode usá-las para definir colunas em qualquer tabela no espaço de chave.
Para mais informações sobre sintaxe de CQL, consulte Tipos definidos pelo usuário () UDTs. Para obter mais informações sobre como trabalhar com o UDTs, consulte o Tipos definidos pelo usuário (UDTs) no Amazon Keyspaces.
Para analisar quantos UDTs são suportados por espaço de chave, níveis de aninhamento suportados e outros valores e cotas padrão relacionados aUDTs, consulte. Cotas e valores padrão para tipos definidos pelo usuário (UDTs) 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
.
Tipo de dados do JSON | 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. |
|
map, string |
map |
Usa a representação nativa do JSON mapa com nomes de campo como chaves. |
|
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. |