Tablestore SDK for Java membuat tabel pemetaan untuk tabel atau indeks pencarian yang sudah ada agar memungkinkan akses SQL ke data.
Prasyarat
Instal Tablestore SDK for Java dan inisialisasi klien.
Gunakan Tablestore SDK for Java versi 5.13.0 atau yang lebih baru.
Buat tabel data yang ingin Anda buatkan tabel pemetaannya. Untuk membuat tabel pemetaan untuk indeks pencarian, terlebih dahulu buat indeks pencarian.
Deskripsi
Panggil metode sqlQuery untuk mengeksekusi pernyataan CREATE TABLE dan membuat tabel pemetaan untuk tabel atau indeks pencarian yang sudah ada.
SQLQueryResponse sqlQuery(SQLQueryRequest request)
Untuk tabel data, nama tabel pemetaan harus sama dengan nama tabel data. Nama bidang tidak peka huruf besar/kecil, dan tipe bidang harus sesuai dengan tipe bidang pada tabel data. Untuk indeks pencarian, Anda dapat menyesuaikan nama tabel pemetaan serta menggunakan parameter ENGINE dan ENGINE_ATTRIBUTE untuk menentukan tabel data dan indeks pencarian yang bersangkutan.
Untuk sintaksis, tipe bidang, dan parameter pernyataan CREATE TABLE, lihat Operasi DDL.
Contoh berikut membuat tabel pemetaan untuk tabel data example_table, yang berisi kolom kunci primer bertipe string dan empat kolom atribut.
String query = "CREATE TABLE example_table ("
+ "pk VARCHAR(1024), "
+ "long_value BIGINT, "
+ "double_value DOUBLE, "
+ "string_value MEDIUMTEXT, "
+ "bool_value BOOL, "
+ "PRIMARY KEY(pk))";
SQLQueryRequest request = new SQLQueryRequest(query);
client.sqlQuery(request);
Parameter
SQLQueryRequest berisi parameter berikut.
|
Name |
Type |
Description |
|
query (required) |
String |
Pernyataan |
Contoh skenario
Buat tabel pemetaan untuk indeks pencarian
Untuk membuat tabel pemetaan untuk indeks pencarian, atur ENGINE menjadi searchindex dan tentukan tabel data serta indeks pencarian di dalam ENGINE_ATTRIBUTE. Contoh berikut membuat tabel pemetaan bernama example_search_table untuk indeks pencarian example_index dari tabel data example_table.
String tableName = "example_table";
String indexName = "example_index";
String mappingTableName = "example_search_table";
String query = String.format(
"CREATE TABLE %s (pk MEDIUMTEXT, long_value BIGINT, "
+ "double_value DOUBLE, string_value MEDIUMTEXT, "
+ "bool_value BOOL) ENGINE='searchindex' "
+ "ENGINE_ATTRIBUTE='{\"index_name\":\"%s\","
+ "\"table_name\":\"%s\"}'",
mappingTableName, indexName, tableName);
SQLQueryRequest request = new SQLQueryRequest(query);
client.sqlQuery(request);
FAQ
Terjadi error Table 'instance.table' doesn't exist saat membuat tabel pemetaan
Penyebab: Tabel data atau indeks pencarian yang ditentukan tidak ada. Pernyataan CREATE TABLE hanya membuat tabel pemetaan untuk tabel data atau indeks pencarian yang sudah ada. Pernyataan ini tidak membuat tabel data atau indeks pencarian tersebut.
Solusi: Periksa apakah nama tabel data atau indeks pencarian sudah benar dan pastikan tabel data atau indeks pencarian tersebut memang ada. Kemudian, eksekusi ulang pernyataan CREATE TABLE.
Terjadi error Table 'instance.table' already exists saat membuat tabel pemetaan
Penyebab: Tabel pemetaan tersebut sudah ada. Tabel tersebut mungkin telah dibuat melalui pernyataan CREATE TABLE atau dibuat secara otomatis ketika pernyataan DESCRIBE atau SELECT dieksekusi tanpa tabel pemetaan eksplisit. Tabel pemetaan yang dibuat secara otomatis hanya berisi kolom kunci primer dan kolom pradefinisi dari tabel data.
Solusi:
Jika Anda ingin menghindari error ketika tabel pemetaan sudah ada, tambahkan
IF NOT EXISTSke dalam pernyataanCREATE TABLE.Jika Anda ingin mengubah skema tabel pemetaan, pertama-tama eksekusi pernyataan
DESCRIBEuntuk melihat skema tersebut. Anda dapat menggunakan pernyataanALTER TABLEuntuk memodifikasi tabel pemetaan yang dibuat melalui pernyataanCREATE TABLE. Tabel pemetaan yang dibuat secara otomatis tidak dapat dimodifikasi. Setelah menilai dampaknya terhadap beban kerja Anda, eksekusi pernyataanDROP MAPPING TABLEuntuk menghapus tabel pemetaan tersebut, lalu buat ulang.