亚马逊Keyspaces 中的 Cassandra 查询语言 (CQL) 元素 - Amazon Keyspaces (for Apache Cassandra)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊Keyspaces 中的 Cassandra 查询语言 (CQL) 元素

了解亚马逊Keyspaces 支持的卡桑德拉查询语言 (CQL) 元素,包括标识符、常量、术语和数据类型。

标识符

标识符(或名称)用于标识表、列和其他对象。标识符可以带引号,也可以不带引号。以下情况将适用。

identifier ::= unquoted_identifier | quoted_identifier unquoted_identifier ::= re('[a-zA-Z][a-zA-Z0-9_]*') quoted_identifier ::= '"' (any character where " can appear if doubled)+ '"'

常量

定义以下常量。

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+

术语

术语表示受支持的值的类型。术语由以下内容定义。

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

数据类型

Amazon Keyspaces 支持以下数据类型:

字符串类型

数据类型 描述

ascii

表示 ASCII 字符串。

text

表示 UTF-8 编码的字符串。

varchar

表示 UTF-8 编码的字符串(varchartext 的别名)。

数字类型

数据类型 描述

bigint

表示 64 位有符号长整型。

counter

表示 64 位有符号整数计数器。有关更多信息,请参阅 计数器

decimal

表示可变精度小数。

double

表示 64 位 IEEE 754 浮点。

float

表示 32 位 IEEE 754 浮点。

int

表示 32 位有符号整数。

varint

表示任意精度的整数。

计数器

counter 列包含 64 位有符号整数。计数器值通过 更新 语句进行递增或递减,并且无法直接设置。这使得 counter 列对于跟踪计数很有用。例如,您可以使用计数器来跟踪日志文件中的条目数或某个社交网络上的文章被查看的次数。以下限制适用于 counter 列:

  • 类型 counter 的列不能是表的 primary key 的一部分。

  • 在包含一个或多个类型 counter 的列的表中,所有列的类型都必须为 counter

如果计数器更新失败(例如,由于超时或与 Amazon Keyspaces 的连接中断),客户端不知道计数器值是否已更新。如果重试更新,则可能会再次应用对计数器值的更新。

BLOB 类型

数据类型 描述

blob

表示任意字节。

布尔值类型

数据类型 描述

boolean

表示 truefalse

与时间相关的类型

数据类型 描述

timestamp

表示时间戳。

timeuuid

表示版本 1 UUID

集合类型

数据类型 描述

list

表示文本元素的有序集合。

map

表示键/值对的无序集合。

set

表示一个或多个文本元素的无序集合。

tuple

表示文本元素的有界组。

其他类型

数据类型 描述

inet

一个表示 IPv4 或 IPv6 格式的 IP 地址的字符串。

亚马逊Keyspaces 数据类型的 JSON 编码

亚马逊 Keyspaces 提供与 Apache Cassandra 相同的 JSON 数据类型映射。下表介绍了Amazon Keyspaces 接受的数据类型INSERT JSON语句以及 Amazon Keyspaces 在返回数据时使用的数据类型SELECT JSON语句。

对于单字段数据类型,例如float,int,UUID,以及date,你也可以将数据作为string. 用于复合数据类型和集合,例如tuple,map,以及list,你也可以以 JSON 或编码形式插入数据JSON string.

JSON 数据类型 在以下版本中受支持:INSERT JSON声明 返回的数据类型SELECT JSON声明 注意

ascii

string string

使用 JSON 字符转义\u.

bigint

integer, string integer

字符串必须是有效的 64 位整数。

blob

string string

字符串应以开头0x后面是偶数的十六进制数字。

boolean

boolean, string boolean

字符串必须是其中之一true要么false.

date

string string

格式化日期YYYY-MM-DD,时区世界标准时间。

decimal

integer, float, string float

在客户端解码器中可以超过 32 位或 64 位 IEEE-754 浮点精度。

double

integer, float, string float

字符串必须是有效的整数或浮点数。

float

integer, float, string float

字符串必须是有效的整数或浮点数。

inet

string string

IPv4 或 IPv6 地址。

int

integer, string integer

字符串必须是有效的 32 位整数。

list

list, string list

使用原生 JSON 列表表示形式。

map

map, string map

使用原生 JSON 地图表示法。

smallint

integer, string integer

字符串必须是有效的 16 位整数。

set

list, string list

使用原生 JSON 列表表示形式。

text

string string

使用 JSON 字符转义\u.

time

string string

Time of dayHH-MM-SS[.fffffffff].

timestamp

integer, string string

时间戳。字符串常量允许您将时间戳存储为日期。带格式的日期戳YYYY-MM-DD HH:MM:SS.SSS已返回。

timeuuid

string string

键入 1 UUUID。请参阅constants用于 UUID 格式。

tinyint

integer, string integer

字符串必须是有效的 8 位整数。

tuple

list, string list

使用原生 JSON 列表表示形式。

uuid

string string

请参阅constants用于 UUID 格式。

varchar

string string

使用 JSON 字符转义\u.

varint

integer, string integer

可变长度;可能会溢出客户端解码器中的 32 位或 64 位整数。