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 |
|---|---|
|
|
Merupakan string karakter ASCII. |
|
|
Merupakan string yang UTF-8 dikodekan. |
|
|
Merupakan string yang UTF-8 dikodekan ( |
Jenis numerik
| Jenis data | Deskripsi |
|---|---|
|
|
Merupakan 64-bit yang ditandatangani panjang. |
|
|
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 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
countertidak dapat menjadi bagianprimary keydari tabel. -
Dalam tabel yang berisi satu atau lebih kolom tipe
counter, 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 |
|---|---|
|
|
Merupakan byte sewenang-wenang. |
Tipe Boolean
| Jenis data | Deskripsi |
|---|---|
|
|
Mewakili true ataufalse. |
Time-related jenis
| Jenis data | Deskripsi |
|---|---|
|
|
Sebuah string dalam format<yyyy>-<mm>-<dd>. |
|
|
Bilangan bulat bertanda 64-bit mewakili tanggal dan waktu sejak zaman (1 Januari 1970 pukul 00:00:00 GMT) dalam milidetik. |
|
|
Merupakan UUID https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address) |
Jenis koleksi
| Jenis data | Deskripsi |
|---|---|
|
|
Merupakan kumpulan elemen literal yang teratur. |
|
|
Merupakan kumpulan pasangan kunci-nilai yang tidak teratur. |
|
|
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 |
|---|---|
|
|
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 |
|---|---|---|---|
|
|
string |
string |
Menggunakan pelarian karakter JSON |
|
|
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 float point IEEE-754 32-bit atau 64-bit di dekoder 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 |
Alamat IPv4 atau IPv6. |
|
|
integer, string |
integer |
String harus berupa integer 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 karakter JSON |
|
|
string |
string |
Waktu dalam format |
|
|
integer, string |
string |
Sebuah stempel waktu. Konstanta string memungkinkan Anda untuk 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 karakter JSON |
|
|
integer, string |
integer |
Panjang variabel; mungkin meluap bilangan bulat 32-bit atau 64-bit di dekoder sisi klien. |