Tablestore menyediakan antarmuka SQL yang kompatibel dengan MySQL untuk tabel lebar dan data deret waktu. Anda dapat menjalankan pernyataan DDL, DQL, dan DML serta menggunakan indeks pencarian untuk pencarian teks penuh, pencarian vektor, kueri array, kueri bersarang, dan kueri JSON.
Cara kerja
Tablestore menjalankan mesin SQL di atas penyimpanan NoSQL-nya. Buat tabel pemetaan dengan CREATE TABLE untuk tabel data yang sudah ada, lalu akses datanya menggunakan SQL. Mesin SQL secara otomatis memilih indeks optimal guna mempercepat kueri.
Berbeda dengan database relasional tradisional, CREATE TABLE di Tablestore tidak membuat tabel fisik. Perintah tersebut hanya membuat pemetaan akses SQL untuk tabel data atau indeks pencarian yang sudah ada. DROP MAPPING TABLE hanya menghapus pemetaan—data dasarnya tetap tidak terpengaruh.
Konsep mesin SQL dipetakan ke konsep Tablestore sebagai berikut.
Konsep database | Konsep Tablestore | Deskripsi |
Database | Instance | Repositori yang mengorganisasi, menyimpan, dan mengelola data. Satu instans dapat berisi satu atau beberapa tabel. |
Tabel | Tabel pemetaan | Pemetaan akses SQL untuk tabel data yang sudah ada. Dibuat dengan CREATE TABLE. Terdiri dari baris dan kolom. |
Indeks | Indeks sekunder, indeks pencarian | Struktur penyimpanan yang dibuat untuk mempercepat kueri. Mesin SQL secara otomatis memilih indeks optimal. |
Kueri SQL tersedia di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Ulanqab), Tiongkok (Shenzhen), Tiongkok (Chengdu), Tiongkok (Hong Kong), Jepang (Tokyo), Singapura, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Jerman (Frankfurt), Inggris (London), AS (Silicon Valley), AS (Virginia), SAU (Riyadh).
Metode akses
Jalankan kueri SQL melalui metode berikut.
Metode | Kasus penggunaan | Referensi |
Console | Kueri data skala kecil dan validasi tanpa kode. | |
CLI | Skrip pengembangan, debugging, dan otomatisasi. | |
JDBC | Aplikasi Java yang mengakses Tablestore melalui antarmuka JDBC standar. | |
Hibernate | Integrasi ORM Java untuk proyek Hibernate yang sudah ada. | |
MyBatis | Integrasi framework persistensi Java untuk proyek MyBatis yang sudah ada. | |
Go driver | Aplikasi Go yang mengakses Tablestore melalui antarmuka database/sql standar. | |
SDK | Eksekusi SQL terprogram dalam aplikasi. | |
Pernyataan SQL yang didukung
Mesin SQL mendukung pernyataan berikut.
Kategori | Pernyataan | Deskripsi |
CREATE TABLE | Membuat pemetaan SQL untuk tabel data atau indeks pencarian. | |
ALTER TABLE | Menambahkan atau menghapus kolom atribut. | |
DROP MAPPING TABLE | Menghapus pemetaan. Data dasarnya tidak terpengaruh. | |
SHOW TABLES | Menampilkan semua tabel pemetaan di instans saat ini. | |
SHOW INDEX | Menampilkan informasi indeks. | |
DESCRIBE | Menampilkan skema tabel. | |
DROP TABLE | Menghapus tabel data. Tidak didukung. | |
SELECT | Mengkueri data dengan filter, fungsi agregat (MIN, MAX, SUM, AVG, COUNT), GROUP BY, ORDER BY, dan LIMIT. | |
SELECT JOIN | Menggabungkan data lintas tabel. Mendukung INNER, LEFT, RIGHT, dan CROSS JOIN. | |
INSERT / UPDATE / DELETE | Menulis, memperbarui, dan menghapus data. | |
Pencarian teks penuh / Array / Bersarang / Vektor / JSON | Menggunakan indeks pencarian untuk pencarian teks penuh, kueri array, kueri bersarang, pencarian vektor, dan kueri JSON. | |
Lainnya | CREATE INDEX | Membuat indeks. Tidak didukung. |
Fitur lainnya:
Set karakter adalah UTF-8, dengan aturan pengurutan biner.
Operator aritmetika, perbandingan, logika, dan bitwise didukung (Operator SQL).
Tipe data SQL dipetakan ke tipe data Tablestore (Pemetaan tipe data).
Optimisasi pemilihan indeks dan computation pushdown didukung (Optimisasi kueri).
Untuk daftar lengkap kata tercadang dan kata kunci, lihat Kata tercadang dan kata kunci SQL.
Operator SQL
SQL Tablestore mendukung empat kategori operator.
Operator aritmetika
Gunakan operator aritmetika dalam klausa SELECT atau WHERE untuk perhitungan numerik.
Operator | Nama | Deskripsi |
A+B | Penjumlahan | Mengembalikan hasil A+B. |
A-B | Pengurangan | Mengembalikan hasil A-B. |
A*B | Perkalian | Mengembalikan hasil A*B. |
A/B atau A DIV B | Pembagian | Mengembalikan hasil A/B. |
A%B atau A MOD B | Modulo | Mengembalikan sisa pembagian A/B. |
Operator perbandingan
Operator perbandingan mengevaluasi apakah suatu kondisi terpenuhi dan mengembalikan 1 untuk TRUE atau 0 untuk FALSE. Gunakan dalam klausa WHERE.
Operator | Nama | Deskripsi |
A:=B | Penugasan | Menetapkan nilai B ke A. |
A=B | Sama dengan | Mengembalikan 1 jika A sama dengan B, selain itu 0. |
A!=B atau A<>B | Tidak sama dengan | Mengembalikan 1 jika A tidak sama dengan B, selain itu 0. |
A>B | Lebih besar dari | Mengembalikan 1 jika A lebih besar dari B, selain itu 0. |
A<B | Lebih kecil dari | Mengembalikan 1 jika A lebih kecil dari B, selain itu 0. |
A>=B | Lebih besar dari atau sama dengan | Mengembalikan 1 jika A lebih besar dari atau sama dengan B, selain itu 0. |
A<=B | Lebih kecil dari atau sama dengan | Mengembalikan 1 jika A lebih kecil dari atau sama dengan B, selain itu 0. |
IN (A,B...) | Dalam himpunan | Mengembalikan 1 jika nilai kolom sesuai dengan salah satu nilai dalam himpunan, selain itu 0. |
BETWEEN A AND B | Dalam rentang | Mengembalikan 1 jika nilai >= A dan <= B, selain itu 0. |
NOT BETWEEN A AND B | Tidak dalam rentang | Mengembalikan 1 jika nilai > B atau < A, selain itu 0. |
A LIKE B | Pencocokan pola | Mencocokkan string. |
A NOT LIKE B | Tidak cocok pola | Mengembalikan string yang tidak cocok. |
Operator logika
Operator logika mengevaluasi apakah ekspresi bernilai true atau false dan mengembalikan 1 untuk TRUE atau 0 untuk FALSE. Gunakan dalam klausa WHERE untuk membangun kondisi majemuk.
Operator | Nama | Deskripsi |
A AND B atau A&&B | Logika AND | Mengembalikan 1 jika A dan B keduanya TRUE, selain itu 0. |
A OR B | Logika OR | Mengembalikan 1 jika setidaknya salah satu dari A atau B bernilai TRUE, selain itu 0. |
A XOR B | Logika XOR | Mengembalikan 1 jika A dan B berbeda, selain itu 0. |
NOT A atau !A | Logika NOT | Mengembalikan 1 jika A bernilai FALSE, selain itu 0. |
Operator bitwise
Operator bitwise melakukan perhitungan pada bilangan biner. Operand dikonversi ke biner untuk operasi, dan hasilnya dikonversi kembali ke desimal.
Operator | Nama | Deskripsi |
A&B | Bitwise AND | Mengembalikan bitwise AND dari A dan B. |
A|B | Bitwise OR | Mengembalikan bitwise OR dari A dan B. |
A^B | Bitwise XOR | Mengembalikan bitwise XOR dari A dan B. |
~A | Bitwise NOT | Mengembalikan komplemen bitwise dari A. |
Pemetaan tipe data
Kolom SQL berkorespondensi dengan kolom tabel yang memiliki nama sama. Tipe datanya harus sesuai.
Untuk kolom kunci primer yang menggunakan VARBINARY atau VARCHAR, tetapkan panjang maksimum menjadi 1024.
BIGINT dalam SQL dan Integer di Tablestore keduanya merupakan tipe integer 64-bit.
Hanya BIGINT, VARBINARY, dan VARCHAR yang didukung sebagai tipe data kolom kunci primer.
Tipe data SQL | Tipe tabel data | Tipe indeks pencarian |
BIGINT | Integer | Integer |
VARBINARY (kunci primer) / MEDIUMBLOB (kolom atribut) | Binary | Binary |
VARCHAR (kunci primer) / MEDIUMTEXT (kolom atribut) | String | Keyword |
Text | ||
DOUBLE | Double | Double |
BOOL | Boolean | Boolean |
Batasan
Kueri SQL berlaku untuk Model Kolom Lebar dan Model TimeSeries.
Transaksi tidak didukung.
Kata kunci SQL merupakan kata tercadang dan tidak peka huruf besar/kecil. Untuk menggunakan kata kunci sebagai nama tabel atau kolom, gunakan escape dengan
``. Untuk daftar lengkapnya, lihat Kata tercadang dan kata kunci SQL.Mesin SQL tidak peka huruf besar/kecil untuk nama kolom.
SELECT Aa FROM tsetara denganSELECT aa FROM t. Karena tabel Tablestore dasarnya peka huruf besar/kecil, mesin SQL mengonversi semua nama kolom menjadi huruf kecil untuk pencocokan. Tabel asli tidak boleh berisi kolom yang hanya berbeda dalam hal kapitalisasi.
Untuk batasan lainnya, lihat Batasan kueri SQL.
Tagihan
Kueri SQL tidak dikenai biaya tambahan. Pemindaian tabel, kueri indeks, dan operasi baca/tulis data selama eksekusi kueri ditagih sesuai harga standar. Untuk detailnya, lihat Item yang dikenai tagihan untuk kueri SQL.