All Products
Search
Document Center

Tablestore:Gunakan indeks sekunder untuk membaca data

Last Updated:Oct 09, 2026

Tablestore menyediakan metode pembacaan baris tunggal dan rentang untuk membaca data dari tabel indeks. Jika tabel indeks berisi kolom atribut yang ingin Anda ambil, Anda dapat langsung membaca data tersebut dari tabel indeks. Jika tidak, Anda harus mengkueri data dari tabel utama.

Prasyarat

Perhatian

  • Tabel indeks hanya dapat digunakan untuk membaca data.

  • Kolom kunci primer pertama pada tabel indeks sekunder lokal harus sama dengan kolom kunci primer pertama pada tabel utama.

  • Jika kolom atribut yang ingin diambil tidak ada di tabel indeks, Anda harus mencari data tersebut di tabel utama.

Baca satu baris data

Anda dapat memanggil operasi GetRow untuk membaca satu baris data. Untuk informasi selengkapnya, lihat Baca satu baris.

Parameter

Saat memanggil operasi GetRow untuk membaca data dari tabel indeks, perhatikan hal-hal berikut:

  • Anda harus mengatur parameter tableName ke nama tabel indeks.

  • Tablestore secara otomatis menambahkan kolom kunci primer dari tabel data yang tidak ditentukan sebagai kolom indeks ke dalam tabel indeks sebagai kolom kunci primer tabel indeks. Oleh karena itu, saat menentukan kolom kunci primer suatu baris di tabel indeks, Anda harus menentukan kolom indeks yang menjadi dasar pembuatan indeks serta kolom kunci primer dari tabel data.

Contoh

Gunakan indeks sekunder global

Kode contoh berikut menunjukkan cara membaca satu baris data dalam indeks sekunder global berdasarkan kunci primernya:

var TableStore = require('./index.js');
var Long = TableStore.Long;
var client = require('./client');

var params = {
  // Tentukan nama tabel indeks. 
  tableName: "<INDEX_NAME>",  
  // Tentukan informasi kunci primer baris di tabel indeks. 
  primaryKey: [{ 'col1': Long.fromNumber(2) }, { 'pk1': Long.fromNumber(2) }, { 'pk2': Long.fromNumber(1) }]
};

client.getRow(params, function (err, data) {
  if (err) {
    console.log('error:', err);
    return;
  }
  console.log('success:', JSON.stringify(data.row, null, 2));
});

Gunakan indeks sekunder lokal

Kode contoh berikut menunjukkan cara membaca satu baris data dalam indeks sekunder lokal berdasarkan kunci primernya:

var TableStore = require('./index.js');
var Long = TableStore.Long;
var client = require('./client');

var params = {
  // Tentukan nama tabel indeks. 
  tableName: "<INDEX_NAME>", 
  // Tentukan informasi kunci primer baris di tabel indeks. Kolom kunci primer pertama pada tabel indeks harus sama dengan kolom kunci primer pertama pada tabel data. 
  primaryKey: [{ 'pk1': Long.fromNumber(1) }, { 'col1': Long.fromNumber(2) }, { 'pk2': Long.fromNumber(2) }]
};

client.getRow(params, function (err, data) {
  if (err) {
    console.log('error:', err);
    return;
  }
  console.log('success:', JSON.stringify(data.row, null, 2));
});

Baca data yang nilai kunci primernya berada dalam rentang tertentu

Anda dapat memanggil operasi GetRange untuk membaca data yang nilai kunci primernya berada dalam rentang tertentu. Untuk informasi selengkapnya, lihat Baca rentang data.

Parameter

Saat memanggil operasi GetRange untuk membaca data dari tabel indeks, perhatikan hal-hal berikut:

  • Anda harus mengatur parameter tableName ke nama tabel indeks.

  • Tablestore secara otomatis menambahkan kolom kunci primer dari tabel data yang tidak ditentukan sebagai kolom indeks ke dalam tabel indeks sebagai kolom kunci primer tabel indeks. Oleh karena itu, saat menentukan kunci primer awal dan akhir dari rentang yang ingin dikueri, Anda harus menentukan kolom indeks yang menjadi dasar pembuatan indeks serta kolom kunci primer dari tabel data.

Contoh

Gunakan indeks sekunder global

Kode contoh berikut menunjukkan cara membaca data yang nilai kunci primernya berada dalam rentang tertentu dari indeks sekunder global. Pada contoh ini, kolom kunci primer pertama dari indeks sekunder global adalah col1. Nilai yang ditentukan untuk kolom col1 dalam rentang tersebut adalah 1.

var TableStore = require('./index.js');
var Long = TableStore.Long;
var client = require('./client');

var params = {
  // Tentukan nama tabel indeks. Pada contoh ini, col1 adalah kolom kunci primer pertama tabel indeks. pk1 dan pk2 adalah kolom kunci primer tabel data. Tablestore secara otomatis menambahkan pk1 dan pk2 ke tabel indeks sebagai kolom kunci primer tabel indeks. 
  tableName: "<INDEX_NAME>", 
  // Tentukan bahwa data dibaca dalam arah maju. 
  direction: TableStore.Direction.FORWARD,
  // Tentukan jumlah maksimum versi data yang ingin dikembalikan. 
  maxVersions: 10,
  // Tentukan kunci primer awal dan akhir. Rentang nilai kunci primer merupakan interval tertutup di kiri dan terbuka di kanan. INF_MIN menunjukkan nilai tak hingga kecil. INF_MAX menunjukkan nilai tak hingga besar. 
  inclusiveStartPrimaryKey: [{ "col1": Long.fromNumber(1) }, { "pk1": TableStore.INF_MIN }, { "pk2": TableStore.INF_MIN }],
  exclusiveEndPrimaryKey: [{ "col1": Long.fromNumber(1) }, { "pk1": TableStore.INF_MAX }, { "pk2": TableStore.INF_MAX }],
  // Tentukan jumlah maksimum baris yang dapat dikembalikan dalam satu pemanggilan. 
  limit: 2
};

var resultRows = []

var getRange = function () {
  client.getRange(params, function (err, data) {
    if (err) {
      console.log('error:', err);
      return;
    }
    resultRows = resultRows.concat(data.rows)

    // Jika parameter data.next_start_primary_key tidak kosong dalam respons, lanjutkan membaca data. 
    if (data.nextStartPrimaryKey) {
      params.inclusiveStartPrimaryKey = [
        { "col1": data.nextStartPrimaryKey[0].value },
        { "pk1": data.nextStartPrimaryKey[1].value },
        { "pk2": data.nextStartPrimaryKey[2].value }
      ];
      getRange()
    } else {
      console.log(JSON.stringify(resultRows));
    }
  });
}

getRange()

Gunakan indeks sekunder lokal

Kode contoh berikut menunjukkan cara membaca semua baris data dari indeks sekunder lokal:

var TableStore = require('./index.js');
var Long = TableStore.Long;
var client = require('./client');

var params = {
  // Tentukan nama tabel indeks. Pada contoh ini, pk1 dan col1 ditentukan sebagai kolom kunci primer tabel indeks. pk2 adalah kolom kunci primer tabel data. Tablestore secara otomatis menambahkan pk2 ke tabel indeks sebagai kolom kunci primer tabel indeks. 
  tableName: "<INDEX_NAMW>", 
  // Tentukan bahwa data dibaca dalam arah maju. 
  direction: TableStore.Direction.FORWARD,
  // Tentukan jumlah maksimum versi data yang ingin dikembalikan. 
  maxVersions: 10,
  // Tentukan kunci primer awal dan akhir. Rentang nilai kunci primer merupakan interval tertutup di kiri dan terbuka di kanan. INF_MIN menunjukkan nilai tak hingga kecil. INF_MAX menunjukkan nilai tak hingga besar. 
  inclusiveStartPrimaryKey: [{ "pk1": TableStore.INF_MIN }, { "col1": TableStore.INF_MIN }, { "pk2": TableStore.INF_MIN }],
  exclusiveEndPrimaryKey: [{ "pk1": TableStore.INF_MAX }, { "col1": TableStore.INF_MAX }, { "pk2": TableStore.INF_MAX }],
  // Tentukan jumlah maksimum baris yang dapat dikembalikan dalam satu pemanggilan. 
  limit: 2
};

var resultRows = []

var getRange = function () {
  client.getRange(params, function (err, data) {
    if (err) {
      console.log('error:', err);
      return;
    }
    resultRows = resultRows.concat(data.rows)

    // Jika parameter data.next_start_primary_key tidak kosong dalam respons, lanjutkan membaca data. 
    if (data.nextStartPrimaryKey) {
      params.inclusiveStartPrimaryKey = [
        { "pk1": data.nextStartPrimaryKey[0].value },
        { "col1": data.nextStartPrimaryKey[1].value },
        { "pk2": data.nextStartPrimaryKey[2].value }
      ];
      getRange()
    } else {
      console.log(JSON.stringify(resultRows));
    }
  });
}

getRange()

FAQ

Referensi

  • Jika bisnis Anda memerlukan kueri multidimensi dan analisis data, Anda dapat membuat indeks pencarian serta menentukan atribut yang diperlukan sebagai bidang indeks pencarian. Kemudian, Anda dapat mengkueri dan menganalisis data menggunakan indeks pencarian tersebut. Misalnya, Anda dapat menggunakan indeks pencarian untuk melakukan kueri berdasarkan kolom non-kunci primer, kueri Boolean, dan kueri fuzzy. Anda juga dapat menggunakan indeks pencarian untuk memperoleh nilai maksimum dan minimum, mengumpulkan statistik jumlah baris, serta mengelompokkan hasil kueri. Untuk informasi selengkapnya, lihat Indeks pencarian.

  • Jika Anda ingin menjalankan pernyataan SQL untuk mengkueri dan menganalisis data, Anda dapat menggunakan fitur kueri SQL. Untuk informasi selengkapnya, lihat Kueri SQL.