全部产品
Search
文档中心

Tablestore:Membaca data dalam rentang

更新时间:Mar 12, 2026

Baca data dalam rentang kunci primer dari tabel Tablestore menggunakan metode getRange pada Node.js SDK.

Prasyarat

Inisialisasi client Tablestore

Metode

getRange: function getRange(params, callback)

Parameter

Name

Type

Description

tableName (Required)

string

Nama tabel data.

inclusiveStartPrimaryKey (Required)

Array

Kunci primer awal. Ini mencakup nama dan nilai kolom kunci primer.

  • Data yang dikembalikan termasuk kunci primer awal.

  • Jumlah dan tipe kunci primer harus sama dengan yang ada di tabel data.

  • Saat membaca data dalam urutan maju, kunci primer awal harus lebih kecil daripada kunci primer akhir.

  • Saat membaca data dalam urutan terbalik, kunci primer awal harus lebih besar daripada kunci primer akhir.

  • TableStore.INF_MIN merepresentasikan negatif tak hingga, dan TableStore.INF_MAX merepresentasikan positif tak hingga.

exclusiveEndPrimaryKey (Required)

Array

Lengkapi informasi kunci primer, termasuk nama dan nilai kolom kunci primer.

  • Data yang dikembalikan tidak termasuk kunci primer akhir.

  • Jumlah dan tipe kunci primer harus sama dengan yang ada di tabel data.

  • TableStore.INF_MIN merepresentasikan negatif tak hingga, dan TableStore.INF_MAX merepresentasikan positif tak hingga.

direction (Optional)

string

Arah pembacaan.

  • TableStore.Direction.FORWARD (default): Membaca data dalam urutan maju.

  • TableStore.Direction.BACKWARD: Membaca data dalam urutan terbalik.

maxVersions (Optional)

number

Jumlah maksimum versi yang dikembalikan. Nilai default adalah 1.

  • Jika jumlah versi data yang memenuhi kondisi filter melebihi jumlah maksimum versi yang ditentukan, versi sebanyak itu akan dikembalikan dalam urutan menurun berdasarkan timestamp.

timeRange (Optional)

object

Rentang versi data.

  • Setiap kolom atribut dalam tabel data Tablestore dapat memiliki beberapa versi. Jika Anda menetapkan rentang versi, hanya data dalam rentang tersebut yang dikembalikan.

limit (Optional)

number

Jumlah maksimum baris yang dikembalikan dalam satu permintaan. Nilai ini harus lebih besar dari 0. Jika jumlah baris yang memenuhi kondisi filter melebihi nilai ini, jumlah baris maksimum yang ditentukan beserta kunci primer awal untuk kueri berikutnya akan dikembalikan.

columnsToGet (Optional)

Array

Kolom data yang akan dibaca. Kolom ini dapat berupa kolom kunci primer atau kolom atribut.

  • Jika Anda tidak menetapkan columnsToGet, seluruh baris data akan dikembalikan.

  • Jika Anda menetapkan columnsToGet, tetapi data baris yang diambil tidak mengandung salah satu kolom yang ditentukan, maka akan mengembalikan null.

columnFilter (Optional)

TableStore.ColumnCondition

Kondisi filter. Untuk informasi selengkapnya, lihat Filters.

  • Jika Anda menetapkan columnsToGet dan columnFilter secara bersamaan, sistem terlebih dahulu memilih baris berdasarkan columnsToGet, lalu menyaring data berdasarkan columnFilter.

transactionId (Optional)

string

ID transaksi lokal. ID ini secara unik mengidentifikasi sebuah transaksi lokal. Untuk informasi selengkapnya, lihat Local transactions.

Contoh

Kode contoh berikut menunjukkan cara membaca data dari tabel test_table dengan nilai kunci primer lebih besar dari row1.

var params = {
    tableName: 'test_table',
    // Set the start primary key for the query.
    inclusiveStartPrimaryKey: [{ 'id': 'row1' }],
    // Set the end primary key for the query. The end primary key is not included in the result.
    exclusiveEndPrimaryKey: [{ 'id': TableStore.INF_MAX }]
};

// Call the getRange method to query data.
client.getRange(params, function (err, data) {
    if (err) {
        console.log('Get range failed with error: ', err);
        return;
    }

    console.log('* RequestId: ', data.RequestId);
    console.log('* Read CU Cost: ', data.consumed.capacityUnit.read);
    console.log('* Write CU Cost: ', data.consumed.capacityUnit.write);
    console.log('* Rows Data: ');
    data.rows.forEach(function (row) {
         console.log(row);
    });
});

Satu kali pemindaian rentang dapat mengembalikan maksimal 5.000 baris atau data sebesar 4 MB. Jika batas ini terlampaui, operasi akan mengembalikan kunci primer awal untuk pembacaan berikutnya. Anda dapat menggunakan kode berikut untuk melakukan permintaan iteratif.

async function getRangeSample() {
    try {
        while (true) {
            // Call the getRange method to query data.
            const data = await client.getRange(params);

            // Process the returned result.
            console.log('* RequestId: ', data.RequestId);
            console.log('* Read CU Cost: ', data.consumed.capacityUnit.read);
            console.log('* Write CU Cost: ', data.consumed.capacityUnit.write);
            console.log('* Rows Data: ');
            data.rows.forEach(function (row) {
                console.log(row);
            });

            // Set the start primary key for the next read.
            if (data.nextStartPrimaryKey) {
                params.inclusiveStartPrimaryKey = data.nextStartPrimaryKey.map(item => {
                    return {
                        [item.name]: item.value
                    };
                });
            } else {
                break;
            }
        }
    } catch (err) {
        console.log('Range get failed with error: ', err);
    }
}

getRangeSample();

Konfigurasikan juga pengaturan berikut saat melakukan kueri data.

  • Tetapkan arah pembacaan data.

    var params = {
        tableName: 'test_table',
        // Set the start primary key for the query. When you read data in reverse order, the start primary key must be greater than the end primary key.
        inclusiveStartPrimaryKey: [{ 'id': TableStore.INF_MAX }],
        // Set the end primary key for the query. The end primary key is not included in the result.
        exclusiveEndPrimaryKey: [{ 'id': 'row1' }],
        // Set the read direction to reverse.
        direction: TableStore.Direction.BACKWARD
    };
  • Tetapkan rentang versi data yang akan dibaca. Operasi hanya akan mengembalikan data dalam rentang versi yang ditentukan.

    // Set the version range for the query to the last 24 hours.
    params.timeRange = {
        startTime: (Date.now() - 86400 * 1000).toString(),
        endTime: Date.now().toString()
    }
  • Tentukan kolom atribut yang akan dibaca.

    params.columnsToGet = ['col2']
  • Tetapkan jumlah maksimum baris yang dikembalikan dalam satu permintaan.

    params.limit = 10

Referensi

Batch Read Data