View a markdown version of this page

Elemen Cassandra Query Language (CQL) di Amazon Keyspace - Amazon Keyspaces (untuk Apache Cassandra)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Elemen Cassandra Query Language (CQL) di Amazon Keyspace

Pelajari tentang elemen Cassandra Query Language (CQL) yang didukung oleh Amazon Keyspaces, termasuk pengidentifikasi, konstanta, istilah, dan tipe data.

Pengidentifikasi

Pengidentifikasi (atau nama) digunakan untuk mengidentifikasi tabel, kolom, dan objek lainnya. Pengidentifikasi dapat dikutip atau tidak dikutip. Berikut ini berlaku.

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

Konstanta

Konstanta berikut didefinisikan.

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+

Istilah

Istilah menunjukkan jenis nilai yang didukung. Istilah didefinisikan sebagai berikut.

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

Jenis Data

Amazon Keyspaces mendukung tipe data berikut:

Jenis string

Jenis data Deskripsi

ascii

Merupakan string karakter ASCII.

text

Merupakan string yang UTF-8 dikodekan.

varchar

Merupakan string yang UTF-8 dikodekan (varcharadalah alias untuktext).

Jenis numerik

Jenis data Deskripsi

bigint

Merupakan 64-bit yang ditandatangani panjang.

counter

Merupakan penghitung bilangan bulat bertanda 64-bit. Untuk informasi selengkapnya, lihat Penghitung.

decimal

Merupakan desimal presisi variabel.

double

Merupakan titik mengambang IEEE 754 64-bit.

float

Merupakan titik mengambang IEEE 754 32-bit.

int

Merupakan int bertanda 32-bit.

varint

Merupakan nilai integer dalam kisaran +/- 10^38.

Penghitung

Sebuah counter kolom berisi integer bertanda 64-bit. Nilai penghitung bertambah atau dikurangi menggunakan UPDATE pernyataan, dan tidak dapat diatur secara langsung. Ini membuat counter kolom berguna untuk melacak jumlah. Misalnya, Anda dapat menggunakan penghitung untuk melacak jumlah entri dalam file log atau berapa kali posting telah dilihat di jejaring sosial. Batasan berikut berlaku untuk counter kolom:

  • Kolom tipe counter tidak dapat menjadi bagian primary key dari tabel.

  • Dalam tabel yang berisi satu atau lebih kolom tipecounter, semua kolom dalam tabel itu harus tipecounter.

Jika pembaruan penghitung gagal (misalnya, karena batas waktu atau hilangnya koneksi dengan Amazon Keyspaces), klien tidak tahu apakah nilai penghitung telah diperbarui. Jika pembaruan dicoba lagi, pembaruan ke nilai penghitung mungkin diterapkan untuk kedua kalinya.

Jenis gumpalan

Jenis data Deskripsi

blob

Merupakan byte sewenang-wenang.

Tipe Boolean

Jenis data Deskripsi

boolean

Mewakili true ataufalse.

Time-related jenis

Jenis data Deskripsi

date

Sebuah string dalam format<yyyy>-<mm>-<dd>.

timestamp

Bilangan bulat bertanda 64-bit mewakili tanggal dan waktu sejak zaman (1 Januari 1970 pukul 00:00:00 GMT) dalam milidetik.

timeuuid

Merupakan UUID https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address) versi 1.

Jenis koleksi

Jenis data Deskripsi

list

Merupakan kumpulan elemen literal yang teratur.

map

Merupakan kumpulan pasangan kunci-nilai yang tidak teratur.

set

Merupakan koleksi tak berurutan dari satu atau lebih elemen literal.

Anda mendeklarasikan kolom koleksi dengan menggunakan jenis koleksi diikuti oleh tipe data lain (misalnya, TEXT atauINT) dalam tanda kurung miring. Anda dapat membuat kolom dengan SET dariTEXT, atau Anda dapat membuat pasangan MAP of TEXT dan kunci INT -nilai, seperti yang ditunjukkan pada contoh berikut.

SET <TEXT> MAP <TEXT, INT>

Koleksi yang tidak dibekukan memungkinkan Anda melakukan pembaruan untuk setiap elemen koleksi individu. Client-side Timestamp dan pengaturan Time to Live (TTL) disimpan untuk elemen individual.

Saat Anda menggunakan FROZEN kata kunci pada jenis koleksi, nilai-nilai koleksi diserialisasi menjadi satu nilai yang tidak dapat diubah, dan Amazon Keyspaces memperlakukannya seperti. BLOB Ini adalah koleksi beku. Per INSERT UPDATE nyataan atau mengganti seluruh koleksi beku. Anda tidak dapat melakukan pembaruan pada elemen individual di dalam koleksi beku.

Client-side Pengaturan stempel waktu dan Time to Live (TTL) berlaku untuk seluruh koleksi beku, bukan untuk elemen individual. Frozenkolom koleksi dapat menjadi bagian PRIMARY KEY dari tabel.

Anda dapat membuat sarang koleksi beku. Misalnya, Anda dapat mendefinisikan a MAP dalam SET jika menggunakan FROZEN kata kunci, seperti yang ditunjukkan dalam contoh berikut. MAP

SET <FROZEN> <MAP <TEXT, INT>>>

Amazon Keyspaces mendukung penarangan hingga 8 tingkat koleksi beku secara default. Untuk informasi selengkapnya, lihat Kuota layanan Amazon Keyspaces. Untuk informasi lebih lanjut tentang perbedaan fungsional dengan Apache Cassandra, lihatFROZENkoleksi. Untuk informasi selengkapnya tentang sintaks CQL, lihat CREATE TABLE danALTER TABLE.

Jenis tupel

Tipe tuple data mewakili kelompok elemen literal yang dibatasi. Anda dapat menggunakan tupel sebagai alternatif untuk auser defined type. Anda tidak perlu menggunakan FROZEN kata kunci untuk tupel. Ini karena tupel selalu dibekukan dan Anda tidak dapat memperbarui elemen satu per satu.

Jenis lainnya

Jenis data Deskripsi

inet

Sebuah string yang mewakili alamat IP, baik dalam format IPv4 atau IPv6.

Statis

Dalam tabel Amazon Keyspaces dengan kolom pengelompokan, Anda dapat menggunakan STATIC kata kunci untuk membuat kolom statis jenis apa pun.

Pernyataan berikut adalah contohnya.

my_column INT STATIC

Untuk informasi selengkapnya tentang bekerja dengan kolom statis, lihatPerkirakan konsumsi kapasitas untuk kolom statis di Amazon Keyspaces.

User-defined jenis (UDT)

Amazon Keyspaces mendukung tipe yang ditentukan pengguna (UDT). Anda dapat menggunakan jenis data Amazon Keyspaces yang valid untuk membuat UDT, termasuk koleksi dan UDT lain yang ada. Anda membuat UDT di ruang kunci dan dapat menggunakannya untuk menentukan kolom di tabel apa pun di ruang kunci.

Untuk informasi selengkapnya tentang sintaks CQL, lihatUser-defined jenis (UDT). Untuk informasi selengkapnya tentang bekerja dengan UDT, lihatUser-defined jenis (UDT) di Amazon Keyspaces.

Untuk meninjau berapa banyak UDT yang didukung per keyspace, tingkat sarang yang didukung, dan nilai dan kuota default lainnya yang terkait dengan UDT, lihat. Kuota dan nilai default untuk tipe yang ditentukan pengguna (UDT) di Amazon Keyspaces

Pengkodean JSON dari tipe data Amazon Keyspaces

Amazon Keyspaces menawarkan pemetaan tipe data JSON yang sama dengan Apache Cassandra. Tabel berikut menjelaskan tipe data yang diterima Amazon Keyspaces dalam INSERT JSON pernyataan dan tipe data yang digunakan Amazon Keyspaces saat mengembalikan data dengan pernyataan. SELECT JSON

Untuk tipe data bidang tunggal sepertifloat,,int, dan UUIDdate, Anda juga dapat menyisipkan data sebagaistring. Untuk tipe data majemuk dan koleksi, sepertituple,map, danlist, Anda juga dapat menyisipkan data sebagai JSON atau sebagai kodeJSON string.

Jenis data JSON Jenis data yang diterima dalam INSERT JSON pernyataan Jenis data dikembalikan dalam SELECT JSON pernyataan Catatan

ascii

string string

Menggunakan pelarian karakter JSON\u.

bigint

integer, string integer

String harus berupa integer 64-bit yang valid.

blob

string string

String harus dimulai dengan 0x diikuti dengan jumlah digit hex yang genap.

boolean

boolean, string boolean

String harus salah satu true ataufalse.

date

string string

Tanggal dalam formatYYYY-MM-DD, zona waktu UTC.

decimal

integer, float, string float

Dapat melebihi presisi float point IEEE-754 32-bit atau 64-bit di dekoder sisi klien.

double

integer, float, string float

String harus berupa integer atau float yang valid.

float

integer, float, string float

String harus berupa integer atau float yang valid.

inet

string string

Alamat IPv4 atau IPv6.

int

integer, string integer

String harus berupa integer 32-bit yang valid.

list

list, string list

Menggunakan representasi daftar JSON asli.

map

map, string map

Menggunakan representasi peta JSON asli.

smallint

integer, string integer

String harus berupa bilangan bulat 16-bit yang valid.

set

list, string list

Menggunakan representasi daftar JSON asli.

text

string string

Menggunakan pelarian karakter JSON\u.

time

string string

Waktu dalam formatHH-MM-SS[.fffffffff].

timestamp

integer, string string

Sebuah stempel waktu. Konstanta string memungkinkan Anda untuk menyimpan stempel waktu sebagai tanggal. Perangko tanggal dengan format YYYY-MM-DD HH:MM:SS.SSS dikembalikan.

timeuuid

string string

Tipe 1 UUID. Lihat constants untuk format UUID.

tinyint

integer, string integer

String harus berupa bilangan bulat 8-bit yang valid.

tuple

list, string list

Menggunakan representasi daftar JSON asli.

UDT

map, string map

Menggunakan representasi peta JSON asli dengan nama bidang sebagai kunci.

uuid

string string

Lihat constants untuk format UUID.

varchar

string string

Menggunakan pelarian karakter JSON\u.

varint

integer, string integer

Panjang variabel; mungkin meluap bilangan bulat 32-bit atau 64-bit di dekoder sisi klien.