All Products
Search
Document Center

Tablestore:Buat indeks sekunder

Last Updated:Apr 30, 2026

Fitur indeks sekunder memungkinkan Anda melakukan kueri data berdasarkan kolom kunci primer dari tabel data dan kolom indeks dari indeks sekunder. Untuk mempercepat kueri pada kolom atribut, buat indeks sekunder pada tabel data tersebut. Saat membuat indeks sekunder, tetapkan kolom indeks atau kolom atributnya ke kolom pradefinisi yang telah ditentukan saat pembuatan tabel.

Catatan
  • Indeks sekunder diklasifikasikan menjadi global secondary index dan local secondary index. Untuk informasi selengkapnya, lihat Ikhtisar.

  • Anda juga dapat membuat tabel indeks saat membuat tabel data dengan memanggil operasi CreateTable. Untuk informasi selengkapnya, lihat Buat tabel data.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Instans OTSClient yang telah diinisialisasi. Untuk informasi selengkapnya, lihat Inisialisasi instans OTSClient.

  • Tabel data dengan parameter maxVersions diatur ke 1. Parameter timeToLive pada tabel data harus memenuhi salah satu kondisi berikut:

    • timeToLive diatur ke -1, yang berarti data tidak pernah kedaluwarsa.

    • timeToLive diatur ke nilai selain -1, dan operasi pembaruan pada tabel data dilarang.

  • Kolom pradefinisi yang telah ditentukan untuk tabel data.

Catatan penggunaan

  • Tablestore SDK untuk .NET hanya mendukung global secondary index. Untuk membuat local secondary index, gunakan Tablestore SDK untuk bahasa pemrograman lain, Konsol Tablestore, atau CLI Tablestore.

  • Nama tabel indeks harus berbeda dari nama tabel deret waktu atau tabel data yang sudah ada.

  • Saat membuat indeks sekunder, Tablestore secara otomatis menambahkan semua kolom kunci primer dari tabel data yang tidak ditentukan sebagai kolom indeks ke dalam indeks sekunder sebagai kolom kunci primernya.

Parameter

Parameter

Deskripsi

mainTableName

Nama tabel data.

indexMeta

Skema tabel indeks. Parameter ini mencakup bidang-bidang berikut:

  • indexName: nama tabel indeks.

  • primaryKey: kunci primer tabel indeks, yang merupakan kombinasi dari kolom pradefinisi dan semua kolom kunci primer dari tabel data.

  • definedColumns: kolom atribut tabel indeks, yang merupakan subset dari kolom pradefinisi tabel data.

  • indexUpdateMode: mode pembaruan tabel indeks. Nilai yang valid: IUM_ASYNC_INDEX.

  • indexType: tipe tabel indeks. Nilai yang valid: IT_GLOBAL_INDEX.

Contoh

Contoh berikut membuat global secondary index yang tidak menyertakan data yang sudah ada dari tabel data. Tabel data memiliki dua kolom kunci primer: pk1 dan pk2. Kolom indeks adalah col1 dan kolom atribut adalah col2. Tabel indeks yang dihasilkan memiliki tiga kolom kunci primer (col1, pk1, dan pk2) dan satu kolom atribut (col2).

public static void CreateGlobalIndex(OTSClient otsClient, String TableName, String IndexName)
{
    Console.WriteLine("Start create globalIndex...");
    IndexMeta indexMeta = new IndexMeta(IndexName);
    // Tentukan kolom kunci primer untuk tabel indeks. 
    indexMeta.PrimaryKey = new List<string>() { "col1" };
    // Tentukan kolom atribut untuk tabel indeks. 
    indexMeta.DefinedColumns = new List<string>() { "col2" };
    //indexMeta.IndexType = IndexType.IT_GLOBAL_INDEX;
    //indexMeta.IndexUpdateModel = IndexUpdateMode.IUM_ASYNC_INDEX;

    CapacityUnit reservedThroughput = new CapacityUnit(0, 0);
    CreateGlobalIndexRequest request = new CreateGlobalIndexRequest(TableName, indexMeta);
    otsClient.CreateGlobalIndex(request);

    Console.WriteLine("Global Index is created,tableName: " + TableName + ",IndexName:" + IndexName);

 }

Langkah berikutnya