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 Keyspaces
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. Pengenal 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+
Ketentuan
Sebuah istilah menunjukkan jenis nilai yang didukung. Ketentuan didefinisikan oleh yang berikut ini.
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 |
|---|---|
|
|
Merupakan string karakter ASCII. |
|
|
Merupakan string yang dikodekan UTF-8. |
|
|
Merupakan string yang dikodekan UTF-8 ( |
Jenis numerik
| Jenis data | Deskripsi |
|---|---|
|
|
Merupakan panjang bertanda 64-bit. |
|
|
Merupakan penghitung bilangan bulat bertanda 64-bit. Untuk informasi selengkapnya, lihat Penghitung. |
|
|
Merupakan desimal presisi variabel. |
|
|
Merupakan titik mengambang IEEE 754 64-bit. |
|
|
Merupakan titik mengambang IEEE 754 32-bit. |
|
|
Merupakan int bertanda 32-bit. |
|
|
Merupakan nilai integer dalam rentang +/- 10 ^ 38. |
Penghitung
counterKolom 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. Pembatasan berikut berlaku untuk counter kolom:
-
Kolom tipe
countertidak dapat menjadi bagianprimary keydari tabel. -
Dalam tabel yang berisi satu atau beberapa kolom tipe
counter, semua kolom dalam tabel itu harus bertipecounter.
Jika pembaruan penghitung gagal (misalnya, karena batas waktu atau kehilangan 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 |
|---|---|
|
|
Merupakan byte arbitrer. |
Jenis Boolean
| Jenis data | Deskripsi |
|---|---|
|
|
Mewakili true ataufalse. |
Jenis terkait waktu
| Jenis data | Deskripsi |
|---|---|
|
|
String dalam format<yyyy>-<mm>-<dd>. |
|
|
Integer bertanda 64-bit yang mewakili tanggal dan waktu sejak epoch (1 Januari 1970 pukul 00:00:00 GMT) dalam milidetik. |
|
|
Merupakan versi 1 UUID |
Jenis koleksi
| Jenis data | Deskripsi |
|---|---|
|
|
Merupakan kumpulan elemen literal yang diurutkan. |
|
|
Merupakan kumpulan pasangan kunci-nilai yang tidak berurutan. |
|
|
Merupakan koleksi yang tidak berurutan dari satu atau lebih elemen literal. |
Anda mendeklarasikan kolom koleksi dengan menggunakan tipe 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 dari TEXT dan INT kunci-nilai, seperti yang ditunjukkan pada contoh berikut.
SET <TEXT> MAP <TEXT, INT>
Koleksi non-beku memungkinkan Anda untuk membuat pembaruan untuk setiap elemen koleksi individu. Stempel waktu sisi klien dan pengaturan Time to Live (TTL) disimpan untuk elemen individual.
Saat Anda menggunakan FROZEN kata kunci pada jenis koleksi, nilai koleksi diserialisasikan menjadi satu nilai yang tidak dapat diubah, dan Amazon Keyspaces memperlakukannya seperti a. BLOB Ini adalah koleksi beku. UPDATEPernyataan INSERT atau menimpa seluruh koleksi beku. Anda tidak dapat membuat pembaruan untuk elemen individual di dalam koleksi beku.
Stempel waktu sisi klien dan pengaturan 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 menentukan MAP dalam a SET jika menggunakan FROZEN kata kunci, seperti yang ditunjukkan pada contoh berikut. MAP
SET <FROZEN> <MAP <TEXT, INT>>>
Amazon Keyspaces mendukung penyarangan 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, lihat. FROZENkoleksi Untuk informasi selengkapnya tentang sintaks CQL, lihat dan. CREATE TABLE ALTER TABLE
Tipe Tuple
Tipe tuple data mewakili sekelompok 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 Tuple selalu dibekukan dan Anda tidak dapat memperbarui elemen satu per satu.
Tipe lainnya
| Jenis data | Deskripsi |
|---|---|
|
|
Sebuah string yang mewakili alamat IP, dalam salah satu IPv4 atau IPv6 format. |
Statis
Dalam tabel Amazon Keyspaces dengan kolom pengelompokan, Anda dapat menggunakan STATIC kata kunci untuk membuat kolom statis jenis apa pun.
Pernyataan berikut adalah contoh dari ini.
my_column INT STATIC
Untuk informasi selengkapnya tentang bekerja dengan kolom statis, lihatPerkirakan konsumsi kapasitas untuk kolom statis di Amazon Keyspaces.
Jenis yang ditentukan pengguna () UDTs
Amazon Keyspaces mendukung tipe yang ditentukan pengguna (). UDTs Anda dapat menggunakan tipe data Amazon Keyspaces yang valid untuk membuat UDT, termasuk koleksi dan lainnya yang sudah ada. UDTs Anda membuat UDTs di ruang kunci dan dapat menggunakannya untuk menentukan kolom dalam tabel apa pun di ruang kunci.
Untuk informasi selengkapnya tentang sintaks CQL, lihat. Jenis yang ditentukan pengguna () UDTs Untuk informasi lebih lanjut tentang bekerja dengan UDTs, lihatTipe yang ditentukan pengguna (UDTs) di Amazon Keyspaces.
Untuk meninjau berapa banyak UDTs yang didukung per ruang kunci, tingkat penyarangan yang didukung, serta nilai dan kuota default lainnya yang terkait UDTs, lihat. Kuota dan nilai default untuk tipe yang ditentukan pengguna () UDTs 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,,, dan int UUIDdate, Anda juga dapat menyisipkan data sebagai string file. Untuk tipe dan koleksi data gabungan, seperti,, dan tuple maplist, Anda juga dapat menyisipkan data sebagai JSON atau sebagai JSON string encode.
| Jenis data JSON | Tipe data diterima dalam INSERT JSON pernyataan |
Tipe data dikembalikan dalam SELECT JSON pernyataan |
Catatan |
|---|---|---|---|
|
|
string |
string |
Menggunakan pelarian |
|
|
integer, string |
integer |
String harus berupa integer 64-bit yang valid. |
|
|
string |
string |
String harus dimulai dengan |
|
|
boolean, string |
boolean |
String harus salah satu |
|
|
string |
string |
Tanggal dalam format |
|
|
integer, float, string |
float |
Dapat melebihi presisi floating point 32-bit atau 64-bit IEEE-754 dalam decoder sisi klien. |
|
|
integer, float, string |
float |
String harus berupa integer atau float yang valid. |
|
|
integer, float, string |
float |
String harus berupa integer atau float yang valid. |
|
|
string |
string |
IPv4 atau IPv6 alamat. |
|
|
integer, string |
integer |
String harus berupa bilangan bulat 32-bit yang valid. |
|
|
list, string |
list |
Menggunakan representasi daftar JSON asli. |
|
|
map, string |
map |
Menggunakan representasi peta JSON asli. |
|
|
integer, string |
integer |
String harus berupa bilangan bulat 16-bit yang valid. |
|
|
list, string |
list |
Menggunakan representasi daftar JSON asli. |
|
|
string |
string |
Menggunakan pelarian |
|
|
string |
string |
Waktu dalam format |
|
|
integer, string |
string |
Sebuah stempel waktu. Konstanta string memungkinkan Anda menyimpan stempel waktu sebagai tanggal. Perangko tanggal dengan format |
|
|
string |
string |
Tipe 1 UUID. Lihat constants untuk format UUID. |
|
|
integer, string |
integer |
String harus berupa bilangan bulat 8-bit yang valid. |
|
|
list, string |
list |
Menggunakan representasi daftar JSON asli. |
|
|
map, string |
map |
Menggunakan representasi peta JSON asli dengan nama bidang sebagai kunci. |
|
|
string |
string |
Lihat constants untuk format UUID. |
|
|
string |
string |
Menggunakan pelarian |
|
|
integer, string |
integer |
Panjang variabel; mungkin meluap bilangan bulat 32-bit atau 64-bit di dekoder sisi klien. |