本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Keyspaces 中的卡桑德拉查詢語言(CQL)元素
了解 Amazon Keyspaces 支援的 Cassandra 查詢語言 (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 字元字串。 |
|
表示一個 UTF-8 編碼的字符串。 |
|
表示 UTF-8 編碼字串 ( |
數值類型
資料類型 | 描述 |
---|---|
|
表示 64 位元簽署的長度。 |
|
表示 64 位元帶正負號整數計數器。如需詳細資訊,請參閱 櫃檯。 |
|
表示可變精度小數。 |
|
代表一個 64 位元的 IEEE 754 浮點數。 |
|
表示一個 32 位元的 IEEE 754 浮點數。 |
|
表示 32 位元帶正負號整數。 |
|
表示任意精度的整數。 |
櫃檯
counter
資料行包含 64 位元帶正負號的整數。計數器值會使用UPDATE陳述式遞增或遞減,而且無法直接設定。這使得counter
列對跟踪計數非常有用。例如,您可以使用計數器來追蹤記錄檔中的項目數目,或在社交網路上檢視貼文的次數。下列限制適用於counter
欄:
-
類型的欄
counter
不能是表格primary key
的一部分。 -
在包含一或多個類型欄的資料表中
counter
,該資料表中的所有資料行都必須是類型counter
。
如果計數器更新失敗 (例如,由於逾時或與 Amazon Keyspaces 的連線中斷),用戶端不知道計數器值是否已更新。如果重試更新,計數器值的更新可能會再次套用。
斑點類型
資料類型 | 描述 |
---|---|
|
表示任意位元組。 |
布林值 (Boolean) 類型
資料類型 | 描述 |
---|---|
|
代表true 或false 。 |
時間相關類型
資料類型 | 描述 |
---|---|
|
64 位元帶正負號的整數,表示自紀元(1970 年 1 月 1 日,格林威治標準時間 00:00:00)以毫秒為單位的日期和時間 |
|
表示一個版本 1 的 UUID |
集合類型
資料類型 | 描述 |
---|---|
|
表示常值項目的有序集合。 |
|
表示鍵值對的無序集合。 |
|
代表一或多個常值項目的無序集合。 |
您可以使用集合類型後面加上角括號中的另一種資料類型 (例如TEXT
或INT
) 來宣告集合資料行。您可以使用SET
的建立欄TEXT
,也可以建立MAP
的TEXT
和INT
索引鍵值配對,如下列範例所示。
SET <TEXT> MAP <TEXT, INT>
非凍結的收集可讓您更新每個個別的收集要素。會儲存個別元素的用戶端時間戳記和存留時間 (TTL) 設定。
當您在集合類型上使用FROZEN
關鍵字時,集合的值會序列化為單一不可變值,而 Amazon Keyspaces space 會將它們視為. BLOB
這是一個凍結的集合。INSERT
或UPDATE
陳述式會覆寫整個凍結集合。您無法更新凍結集合中的個別元素。
用戶端時間戳記和存留時間 (TTL) 設定會套用至整個凍結集合,而非個別元素。 Frozen
集合欄可以是表格PRIMARY KEY
的一部分。
您可以巢狀凍結的集合。例如,SET
如果使用FROZEN
關鍵字,您可以在 a MAP
中定義一個,如下列範例所示。MAP
SET <FROZEN> <MAP <TEXT, INT>>>
Amazon Keyspaces 預設支援嵌套多達五個層級的凍結集合。如需詳細資訊,請參閱 Amazon Keyspaces 服務配額。有關功能差異與 Apache 卡桑德拉的更多信息,請參閱。FROZEN集合如需 CQL 語法的詳細資訊,請參閱CREATE TABLE和ALTER TABLE。
元組類型
資tuple
料類型代表文字元素的有界群組。您可以使用元組作為user defined
type
. 您不需要為元組使用FROZEN
關鍵字。這是因為一個元組總是被凍結,你不能單獨更新元素。
其他類型
資料類型 | 描述 |
---|---|
|
代表 IP 位址的字串,採用 IPv4 或 IPv6 格式。 |
靜態
在具有叢集資料行的 Amazon Keyspace 表格中,您可以使用STATIC
關鍵字建立任何類型的靜態資料欄。
下面的語句是這樣的一個例子。
my_column INT STATIC
如需使用靜態欄的詳細資訊,請參閱Amazon Keyspaces 中的靜態列。
Amazon Keyspaces 數據類型的 JSON 編碼
Amazon Keyspaces 提供相同的 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 陳述式中傳回的資料類型 |
備註 |
---|---|---|---|
|
string |
string |
使用 JSON 字符轉義 |
|
integer, string |
integer |
字串必須是有效的 64 位元整數。 |
|
string |
string |
字符串應該以 |
|
boolean, string |
boolean |
字串必須是 |
|
string |
string |
日期格式 |
|
integer, float, string |
float |
在用戶端解碼器中,可以超過 32 位元或 64 位元 IEEE-754 浮點精度。 |
|
integer, float, string |
float |
字符串必須是有效的整數或浮點數。 |
|
integer, float, string |
float |
字符串必須是有效的整數或浮點數。 |
|
string |
string |
IPv4 或 IPv6 位址。 |
|
integer, string |
integer |
字串必須是有效的 32 位元整數。 |
|
list, string |
list |
使用原生 JSON 清單表示法。 |
|
map, string |
map |
使用原生 JSON 對應表示法。 |
|
integer, string |
integer |
字串必須是有效的 16 位元整數。 |
|
list, string |
list |
使用原生 JSON 清單表示法。 |
|
string |
string |
使用 JSON 字符轉義 |
|
string |
string |
以格式顯示的一天中的時間 |
|
integer, string |
string |
時間戳記。字符串常量允許您將時間戳存儲為日期。返回帶有格式 |
|
string |
string |
類型 1 無線識別碼。如需 UUID 格式的constants資訊,請參閱。 |
|
integer, string |
integer |
字串必須是有效的 8 位元整數。 |
|
list, string |
list |
使用原生 JSON 清單表示法。 |
|
string |
string |
如需 UUID 格式的constants資訊,請參閱。 |
|
string |
string |
使用 JSON 字符轉義 |
|
integer, string |
integer |
可變長度;用戶端解碼器中可能會溢位 32 位元或 64 位元整數。 |