Anda dapat menggunakan tabel pemetaan yang dibuat untuk sebuah tabel atau tabel pemetaan yang dibuat untuk indeks pencarian untuk mengkueri data dalam SQL. Pilih metode kueri berdasarkan skenario.
Informasi latar belakang
Tablestore dapat menyimpan sejumlah besar data terstruktur dan mendukung berbagai jenis skema indeks untuk akselerasi kueri dan analitik dalam berbagai skenario. Tablestore menyediakan skema indeks berikut: kunci utama dari tabel data, yang memungkinkan operasi pembacaan satu baris (GetRow) dan pembacaan rentang (GetRange), tabel indeks sekunder yang berisi kolom kunci utama kustom, serta indeks pencarian yang mendukung indeks terbalik dan indeks spatio-temporal.
Saat menggunakan fitur kueri SQL, Anda dapat mengkueri data melalui akses eksplisit ke tabel indeks sekunder. Tablestore menyediakan dua metode untuk mengkueri data menggunakan indeks pencarian: pemilihan otomatis indeks pencarian dan akses eksplisit ke indeks pencarian. Untuk informasi lebih lanjut, lihat Kebijakan Pemilihan Indeks.
Skenario contoh
Dalam skenario ini, tabel data exampletable berisi kolom kunci utama id dan kolom atribut name dan context. Kolom kunci utama id bertipe Integer, sedangkan kolom atribut name dan context bertipe String. Indeks pencarian bernama exampletable_searchindex dibuat untuk tabel data tersebut. Indeks pencarian mencakup kolom id dan context, dengan tipe masing-masing adalah Integer dan Text.
Topik ini menggunakan skenario ini sebagai contoh untuk menjelaskan cara menggunakan skema indeks yang berbeda untuk mengkueri data dalam SQL.
Gunakan tabel pemetaan tabel
Pilih salah satu metode di bagian ini untuk menggunakan tabel pemetaan tabel berdasarkan skenario. Saat menggunakan tabel pemetaan yang dibuat untuk sebuah tabel, Anda dapat menentukan apakah hasil kueri berada dalam mode konsistensi kuat dan apakah kinerja kueri dapat ditingkatkan dengan mengorbankan akurasi operasi agregat.
Untuk informasi tentang cara membuat tabel pemetaan untuk sebuah tabel, lihat Buat Tabel Pemetaan untuk Sebuah Tabel.
Metode 1: Tentukan bahwa hasil kueri berada dalam mode konsistensi akhir dan bahwa kinerja kueri dapat ditingkatkan dengan mengorbankan akurasi operasi agregat
Buat tabel pemetaan bernama exampletable untuk tabel data exampletable dan pertahankan pengaturan default untuk parameter lainnya.
CREATE TABLE `exampletable` (`id` BIGINT, `name` MEDIUMTEXT, `context` MEDIUMTEXT, PRIMARY KEY(id)) ENGINE='Tablestore';Kueri data.
Saat mengeksekusi pernyataan SQL berikut untuk mengkueri data, Tablestore secara otomatis memilih tabel data untuk kueri karena kolom id, name, dan context tidak semuanya terdapat dalam indeks pencarian exampletable_searchindex.
SELECT * FROM exampletable LIMIT 10;Saat mengeksekusi pernyataan SQL berikut untuk mengkueri data, Tablestore secara otomatis memilih indeks pencarian exampletable_searchindex untuk kueri karena indeks pencarian mencakup kolom id dan context.
SELECT id,context FROM exampletable LIMIT 10;
Metode 2: Tentukan bahwa hasil kueri berada dalam mode konsistensi kuat
Buat tabel pemetaan bernama exampletable untuk tabel data exampletable dan atur data_consistency menjadi strong.
CREATE TABLE `exampletable` (`id` BIGINT, `name` MEDIUMTEXT, `context` MEDIUMTEXT, PRIMARY KEY(id)) ENGINE='Tablestore', ENGINE_ATTRIBUTE='{"data_consistency": "strong"}';Kueri data. Untuk informasi lebih lanjut, lihat Kueri Data.
Jika indeks pencarian digunakan untuk mengkueri data, hasil kueri berada dalam mode konsistensi akhir, yang tidak menjamin konsistensi kuat. Oleh karena itu, Tablestore tidak menggunakan indeks pencarian untuk kueri data.
Metode 3: Tentukan bahwa hasil kueri berada dalam mode konsistensi akhir dan bahwa kinerja kueri tidak dapat ditingkatkan dengan mengorbankan akurasi operasi agregat
Buat tabel pemetaan bernama exampletable untuk tabel data exampletable dan atur data_consistency menjadi eventual serta allow_inaccurate_aggregation menjadi false.
CREATE TABLE `exampletable` (`id` BIGINT, `name` MEDIUMTEXT, `context` MEDIUMTEXT, PRIMARY KEY(id)) ENGINE='Tablestore', ENGINE_ATTRIBUTE='{"data_consistency": "eventual", "allow_inaccurate_aggregation": false}';Kueri data. Untuk informasi lebih lanjut, lihat Kueri Data.
Fitur agregat indeks pencarian tidak memberikan hasil yang sepenuhnya akurat. Oleh karena itu, Tablestore tidak menggunakan indeks pencarian untuk kueri data.
Gunakan tabel pemetaan indeks pencarian
Jika ingin menggunakan indeks pencarian tertentu untuk mengkueri data, Anda dapat membuat tabel pemetaan untuk indeks pencarian tersebut.
Untuk informasi tentang cara membuat tabel pemetaan untuk indeks pencarian, lihat Buat Tabel Pemetaan untuk Indeks Pencarian.
Buat tabel pemetaan bernama exampletable_searchindex_test untuk indeks pencarian.
CREATE TABLE `exampletable_searchindex_test` (`id` BIGINT, `context` MEDIUMTEXT) ENGINE='searchindex' ENGINE_ATTRIBUTE='{"index_name": "exampletable_searchindex", "table_name": "exampletable"}'Kueri data.
SELECT id,context FROM exampletable_searchindex_test WHERE text_match(context, "tablestore cool") LIMIT 10;