全部产品
Search
文档中心

Tablestore:Indeks Sekunder

更新时间:Jul 02, 2025

Jika aplikasi memerlukan penggunaan atribut tertentu sebagai kondisi kueri untuk mengambil data, Anda dapat menetapkan atribut-atribut tersebut sebagai kolom kunci utama dari indeks sekunder guna mempercepat kueri. Tablestore menyediakan fitur indeks sekunder lokal dan global untuk memenuhi kebutuhan terkait konsistensi baca selama kueri data. Topik ini menjelaskan istilah dan fitur indeks sekunder, perbedaan antara tipe indeks sekunder, serta catatan penggunaannya.

Informasi Latar Belakang

Anda dapat mengkueri data dari tabel data di Tablestore dengan menentukan kunci utama tabel tersebut. Namun, dalam banyak kasus, aplikasi mungkin perlu mengkueri data menggunakan atribut lain selain kunci utama tabel. Untuk memenuhi kebutuhan ini, Anda dapat membuat satu atau lebih indeks sekunder dan menggunakan tabel indeks untuk mengkueri data.

Fitur indeks sekunder memungkinkan Anda mengkueri data berdasarkan kunci utama tabel data dan kolom kunci indeks dari indeks sekunder yang dibuat untuk tabel data tersebut. Ini meningkatkan efisiensi kueri. Saat membuat indeks sekunder, tetapkan atribut yang ingin dikueri sebagai kolom kunci utama tabel indeks. Kemudian, Anda dapat menggunakan kolom kunci utama tabel indeks untuk mengkueri data. Untuk informasi lebih lanjut, lihat Skenario.

Istilah

Istilah

Deskripsi

tabel indeks

Tabel yang dibuat berdasarkan kolom terindeks dari tabel data.

Data dalam tabel indeks bersifat hanya-baca.

kolom terdefinisi sebelumnya

Kolom non-kunci utama yang ditentukan saat pembuatan tabel data. Kolom terdefinisi sebelumnya dapat digunakan sebagai kolom kunci indeks atau kolom atribut dari tabel indeks. Anda perlu menentukan tipe data kolom terdefinisi sebelumnya saat menambahkan kolom tersebut.

Catatan

Tablestore menggunakan model tanpa skema. Anda dapat menulis kolom atribut yang berbeda ke baris tanpa perlu menentukan kolom atribut dalam skema tabel.

indeks kolom tunggal

Indeks yang dibuat pada satu kolom.

indeks gabungan

Indeks yang dibuat pada beberapa kolom. Sebagai contoh, indeks gabungan dapat memiliki kolom kunci indeks 1 dan 2.

kolom atribut terindeks

Kolom terdefinisi sebelumnya yang dipetakan dari tabel data ke tabel indeks sebagai kolom terdefinisi sebelumnya dari tabel indeks.

penyelesaian otomatis

Fitur yang memungkinkan sistem secara otomatis menambahkan kolom kunci utama tabel data yang tidak ditentukan sebagai kolom kunci indeks ke tabel indeks sebagai kolom kunci utama tabel indeks.

Tipe Indeks Sekunder

Di Tablestore, indeks sekunder diklasifikasikan menjadi indeks sekunder global dan lokal. Jika menggunakan fitur indeks sekunder global, Tablestore secara otomatis menyinkronkan data dari kolom terindeks dan kolom kunci utama tabel data tempat tabel indeks dibuat ke tabel indeks dalam mode asinkron. Latensi sinkronisasi berada dalam beberapa milidetik.

Untuk memenuhi kebutuhan pengguna terkait konsistensi kuat selama kueri data, Tablestore menyediakan fitur indeks sekunder lokal. Jika menggunakan fitur indeks sekunder lokal, Tablestore secara otomatis menyinkronkan data dari kolom terindeks dan kolom kunci utama tabel data tempat tabel indeks dibuat ke tabel indeks dalam mode sinkron. Setelah data ditulis ke tabel data, Anda dapat langsung mengkueri data dari tabel indeks.

Tabel berikut menjelaskan perbedaan antara indeks sekunder global dan lokal dalam hal mode sinkronisasi, persyaratan pada kolom kunci utama pertama, latensi sinkronisasi, dan konsistensi baca.

Item

Indeks Sekunder Global

Indeks Sekunder Lokal

Mode Sinkronisasi

Mode Asinkron

Mode Sinkron

Persyaratan pada kolom kunci utama pertama

Kolom kunci utama pertama dari indeks sekunder global bisa berupa kolom kunci utama atau kolom terdefinisi sebelumnya dari tabel data tempat indeks sekunder dibuat.

Kolom kunci utama pertama dari indeks sekunder lokal harus sama dengan kolom kunci utama pertama dari tabel data tempat indeks sekunder dibuat.

Latensi Sinkronisasi

Dalam beberapa milidetik

Real-time

Konsistensi Baca

Konsistensi Akhir

Konsistensi Kuat

Fitur

Fitur indeks sekunder mencakup indeks kolom tunggal, indeks gabungan, sinkronisasi indeks, indeks tertutup, indeks yang berisi data historis tabel data, dan indeks jarang. Tabel berikut menjelaskan fitur-fitur tersebut.

Fitur

Deskripsi

Indeks Kolom Tunggal dan Indeks Gabungan

Anda dapat membuat indeks pada satu atau beberapa kolom dalam tabel data.

Sinkronisasi Indeks

Indeks sekunder global dan lokal menyinkronkan data dalam mode yang berbeda.

  • Jika menggunakan fitur indeks sekunder global, Tablestore secara otomatis menyinkronkan data dari kolom terindeks dan kolom kunci utama tabel data tempat tabel indeks dibuat ke tabel indeks dalam mode asinkron. Latensi sinkronisasi berada dalam beberapa milidetik.

  • Jika menggunakan fitur indeks sekunder lokal, Tablestore secara otomatis menyinkronkan data dari kolom terindeks dan kolom kunci utama tabel data tempat tabel indeks dibuat ke tabel indeks dalam mode sinkron. Setelah data ditulis ke tabel data, Anda dapat langsung mengkueri data dari tabel indeks.

Indeks Tertutup

Tabel indeks dapat berisi kolom atribut. Anda dapat membuat kolom terdefinisi sebelumnya saat membuat tabel data. Kemudian, Anda dapat membuat tabel indeks berdasarkan kolom terdefinisi sebelumnya dan kolom kunci utama tabel data. Anda dapat menentukan beberapa kolom terdefinisi sebelumnya dari tabel data sebagai kolom atribut tabel indeks. Anda juga dapat menentukan tidak ada kolom atribut untuk tabel indeks.

Jika menentukan beberapa kolom terdefinisi sebelumnya dari tabel data sebagai kolom atribut tabel indeks, Anda dapat mengkueri nilai-nilai dalam kolom terdefinisi sebelumnya dari tabel indeks tanpa perlu mengkueri tabel data.

Indeks yang Berisi Data Historis Tabel Data

Anda dapat membuat tabel indeks yang berisi data historis tabel data.

Indeks Jarang

Anda dapat menentukan kolom terdefinisi sebelumnya dari tabel data sebagai kolom atribut tabel indeks. Jika baris dalam tabel data tidak berisi kolom terdefinisi sebelumnya tetapi berisi semua kolom kunci indeks, indeks dibuat pada baris tersebut. Namun, indeks tidak dapat dibuat jika baris tersebut tidak berisi beberapa kolom kunci indeks.

Sebagai contoh, tabel data berisi kolom kunci utama PK0, PK1, dan PK2, serta kolom terdefinisi sebelumnya Defined0, Defined1, dan Defined2. Anda membuat tabel indeks yang berisi kolom kunci indeks PK0, Defined0, dan Defined1, serta kolom atribut Defined2.

  • Jika baris tabel data berisi Defined0 dan Defined1 tetapi tidak berisi Defined2, indeks dibuat pada baris tersebut.

  • Jika baris tabel data berisi Defined0 dan Defined2 tetapi tidak berisi Defined1, indeks tidak dapat dibuat pada baris tersebut.

Batasan

Untuk informasi lebih lanjut, lihat Batasan Indeks Pencarian.

Catatan Penggunaan

Catatan Penggunaan untuk Membuat Tabel Indeks

  • Sistem secara otomatis menambahkan kolom kunci utama tabel data yang tidak ditentukan sebagai kolom kunci indeks ke tabel indeks sebagai kolom kunci utama tabel indeks. Saat memindai data dalam tabel indeks, Anda harus menentukan nilai kolom kunci utama. Nilai kolom kunci utama berkisar dari negatif tak terbatas hingga positif tak terbatas.

    Saat membuat tabel indeks, Anda hanya perlu menentukan kolom kunci indeks. Sistem secara otomatis menambahkan semua kolom kunci utama tabel data ke tabel indeks. Sebagai contoh, tabel data berisi kolom kunci utama PK0 dan PK1 serta kolom terdefinisi sebelumnya Defined0.

    Jika menggunakan fitur indeks sekunder global, Anda dapat membuat indeks pada kolom berdasarkan kebutuhan bisnis Anda.

    • Jika membuat indeks pada kolom Defined0, Tablestore menghasilkan tabel indeks yang kolom kunci utamanya adalah Defined0, PK0, dan PK1.

    • Jika membuat indeks pada kolom Defined0 dan PK1, Tablestore menghasilkan tabel indeks yang kolom kunci utamanya adalah Defined0, PK1, dan PK0.

    • Jika membuat indeks pada kolom PK1, Tablestore menghasilkan tabel indeks yang kolom kunci utamanya adalah PK1 dan PK0.

    Jika menggunakan fitur indeks sekunder lokal, kolom kunci utama pertama tabel indeks harus sama dengan kolom kunci utama pertama tabel data tempat tabel indeks dibuat.

    • Jika membuat indeks pada kolom PK0 dan Defined0, Tablestore menghasilkan tabel indeks yang kolom kunci utamanya adalah PK0, Defined0, dan PK1.

    • Jika membuat indeks pada kolom PK0, PK1, dan Defined0, Tablestore menghasilkan tabel indeks yang kolom kunci utamanya adalah PK0, PK1, dan Defined0.

    • Jika membuat indeks pada kolom PK0 dan PK1, Tablestore menghasilkan tabel indeks yang kolom kunci utamanya adalah PK0 dan PK1.

  • Anda dapat menentukan kolom terdefinisi sebelumnya dari tabel data sebagai kolom atribut tabel indeks yang dibuat untuk tabel data berdasarkan mode kueri dan kebutuhan biaya Anda.

    Setelah menentukan kolom terdefinisi sebelumnya dari tabel data sebagai kolom atribut tabel indeks yang dibuat untuk tabel data, Anda dapat mengkueri nilai-nilai dalam kolom terdefinisi sebelumnya dari tabel indeks tanpa perlu mengkueri tabel data. Namun, ini meningkatkan biaya penyimpanan. Jika kolom terdefinisi sebelumnya dari tabel data tidak ditentukan sebagai kolom atribut tabel indeks, Anda harus mengkueri nilai-nilai dalam kolom terdefinisi sebelumnya dari tabel data.

  • Saat menggunakan fitur indeks sekunder global, tentukan kolom tabel data sebagai kolom kunci utama pertama tabel indeks berdasarkan kebutuhan bisnis Anda.

    • Jika kolom yang nilainya waktu atau tanggal adalah kolom kunci utama pertama tabel indeks, kecepatan pembaruan tabel indeks mungkin menurun. Oleh karena itu, kami merekomendasikan agar Anda tidak menentukan jenis kolom ini sebagai kolom kunci utama pertama tabel indeks.

      Kami merekomendasikan agar Anda melakukan hashing pada kolom yang nilainya waktu atau tanggal dan membuat indeks pada kolom yang telah di-hash. Jika perlu melakukan hashing, gunakan DingTalk untuk menghubungi dukungan teknis Tablestore.

    • Kami merekomendasikan agar Anda tidak menentukan kolom dengan kardinalitas rendah atau kolom yang berisi nilai enumerasi sebagai kolom kunci utama pertama tabel indeks. Sebagai contoh, jika menentukan kolom gender sebagai kolom kunci utama pertama tabel indeks, skalabilitas horizontal tabel indeks terbatas. Akibatnya, performa tulis terganggu.

Catatan Penggunaan untuk Menggunakan Tabel Indeks

  • Anda harus mematuhi aturan berikut saat menulis data ke tabel data tempat tabel indeks dibuat. Jika tidak, data tidak dapat ditulis ke tabel data.

    • Anda tidak dapat menentukan nomor versi untuk data yang Anda tulis ke tabel data.

    • Baris duplikat yang memiliki nilai kunci utama yang sama tidak dapat ada dalam operasi penulisan batch.

  • Anda hanya dapat menggunakan tabel indeks untuk mengkueri data. Anda tidak dapat menulis data ke tabel indeks.

Operasi API

Tabel berikut menjelaskan operasi API yang disediakan oleh Tablestore untuk mengelola indeks sekunder.

Operasi API

Deskripsi

CreateIndex

Membuat tabel indeks untuk tabel data yang sudah ada.

Catatan
  • Anda dapat menentukan apakah akan menyertakan data historis tabel data dalam tabel indeks yang Anda buat dengan memanggil operasi CreateIndex.

  • Anda dapat membuat satu atau lebih tabel indeks saat Anda membuat tabel data dengan memanggil operasi CreateTable.

GetRow

Membaca satu baris data dari tabel indeks.

GetRange

Membaca data dalam rentang tertentu dari tabel indeks.

DropIndex

Menghapus tabel indeks dari tabel data.

Penting

Sebelum Anda memanggil operasi DeleteTable untuk menghapus tabel data, Anda harus terlebih dahulu menghapus tabel indeks yang dibuat pada tabel data. Jika tidak, Anda tidak dapat menghapus tabel data.

Menggunakan Indeks Sekunder

Anda dapat menggunakan indeks sekunder dengan menggunakan konsol Tablestore, CLI Tablestore, atau SDK Tablestore. Untuk informasi lebih lanjut, lihat topik-topik berikut:

Penagihan

Saat menggunakan indeks sekunder, Anda dikenakan biaya untuk penggunaan penyimpanan data indeks dan throughput baca yang dihasilkan saat mengkueri data indeks. Untuk informasi lebih lanjut, lihat Item-item yang Dapat Ditagih dari Indeks Sekunder.

Referensi

Jika ingin mengkueri data dengan cara yang lebih efisien dan fleksibel, Anda dapat menggunakan fitur indeks pencarian. Fitur indeks pencarian menyediakan berbagai metode kueri, termasuk kueri Boolean, pencarian teks lengkap, kueri awalan, dan kueri fuzzy. Untuk informasi lebih lanjut, lihat Indeks Pencarian.

FAQ