Todos os produtos
Search
Central de documentação

Tablestore:Read data in a range

Última atualização: Jun 30, 2026

Utilize o método getRange no SDK do Tablestore para Node.js a fim de ler dados dentro de um intervalo de chave primária especificado.

Pré-requisitos

Inicializar um cliente do Tablestore

Método

getRange: function getRange(params, callback)

Parameters

Name

Type

Description

tableName (Required)

string

Nome da tabela de dados.

inclusiveStartPrimaryKey (Required)

Array

Chave primária inicial, incluindo o nome e o valor da coluna de chave primária.

  • Os dados retornados incluem a chave primária inicial.

  • A quantidade e os tipos de chaves primárias devem corresponder aos da tabela de dados.

  • Para leituras em ordem crescente, a chave primária inicial deve ser menor que a chave primária final.

  • Para leituras em ordem decrescente, a chave primária inicial deve ser maior que a chave primária final.

  • TableStore.INF_MIN representa infinito negativo e TableStore.INF_MAX representa infinito positivo.

exclusiveEndPrimaryKey (Required)

Array

Chave primária final, incluindo o nome e o valor da coluna de chave primária.

  • Os dados retornados não incluem a chave primária final.

  • A quantidade e os tipos de chaves primárias devem corresponder aos da tabela de dados.

  • TableStore.INF_MIN representa infinito negativo e TableStore.INF_MAX representa infinito positivo.

direction (Optional)

string

Direção da leitura.

  • TableStore.Direction.FORWARD (padrão): Lê os dados em ordem crescente.

  • TableStore.Direction.BACKWARD: Lê os dados em ordem decrescente.

maxVersions (Optional)

number

Número máximo de versões a retornar. O valor padrão é 1.

  • Caso o número de versões que atendem à condição de filtro exceda o máximo especificado, os resultados são retornados em ordem decrescente de timestamp.

timeRange (Optional)

object

Intervalo de versão dos dados.

  • Colunas de atributo em uma tabela do Tablestore podem ter múltiplas versões. Ao definir um intervalo de versão, apenas os dados dentro desse intervalo são retornados.

limit (Optional)

number

Quantidade máxima de linhas a retornar em uma única solicitação. Deve ser maior que 0. Se as linhas correspondentes excederem esse valor, a resposta incluirá o número especificado de linhas e a chave primária inicial para a próxima consulta.

columnsToGet (Optional)

Array

Colunas a serem lidas. Podem ser colunas de chave primária ou colunas de atributo.

  • Se não for especificado, a linha inteira será retornada.

  • Caso a linha recuperada não contenha nenhuma das colunas especificadas, null será retornado.

columnFilter (Optional)

TableStore.ColumnCondition

Filtro a ser aplicado. Para mais informações, consulte Filtros.

  • Ao definir columnsToGet e columnFilter simultaneamente, o sistema seleciona primeiro as linhas com base em columnsToGet e depois filtra os dados conforme columnFilter.

transactionId (Optional)

string

ID que identifica exclusivamente uma transação local. Para mais informações, consulte Transações locais.

Exemplos

O exemplo a seguir lê dados da tabela test_table onde o valor da chave primária é maior que 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);
    });
});

Uma única varredura de intervalo retorna no máximo 5.000 linhas ou 4 MB de dados. Caso esse limite seja excedido, a resposta incluirá a chave primária inicial para a próxima leitura. Utilize o código a seguir para realizar consultas iterativas.

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();

Também é possível aplicar as configurações abaixo durante a consulta de dados.

  • Defina a direção de leitura dos dados.

    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
    };
  • Estabeleça um intervalo de versão. Somente dados dentro do intervalo definido serão retornados.

    // Set the version range for the query to the last 24 hours.
    params.timeRange = {
        startTime: (Date.now() - 86400 * 1000).toString(),
        endTime: Date.now().toString()
    }
  • Especifique as colunas de atributo a serem lidas.

    params.columnsToGet = ['col2']
  • Configure o número máximo de linhas a retornar em uma única solicitação.

    params.limit = 10

Referências

Leitura de dados em lote