Todos os produtos
Search
Central de documentação

Tablestore:Range Read Data

Última atualização: Jun 30, 2026

Use o Tablestore PHP SDK para ler linhas dentro de um intervalo de chave primária especificado.

Pré-requisitos

Inicializar o cliente do Tablestore

Método

public function getRange(array $request)

A tabela a seguir descreve os parâmetros de $request.

Nome

Tipo

Descrição

table_name (obrigatório)

string

Nome da tabela de dados.

inclusive_start_primary_key (obrigatório)

array

Chave primária inicial, incluindo nomes e valores das colunas.

  • A resposta inclui a chave primária inicial.

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

  • Em leituras progressivas, a chave primária inicial deve ser menor que a final.

  • Em leituras regressivas, a chave primária inicial deve ser maior que a final.

  • PrimaryKeyTypeConst::CONST_INF_MIN representa infinito negativo. PrimaryKeyTypeConst::CONST_INF_MAX representa infinito positivo.

exclusive_end_primary_key (obrigatório)

array

Chave primária final, incluindo nomes e valores das colunas.

  • A resposta exclui a chave primária final.

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

  • PrimaryKeyTypeConst::CONST_INF_MIN representa infinito negativo. PrimaryKeyTypeConst::CONST_INF_MAX representa infinito positivo.

direction (obrigatório)

string

Direção da leitura.

  • DirectionConst::CONST_FORWARD: leitura progressiva.

  • DirectionConst::CONST_BACKWARD: leitura regressiva.

max_versions (opcional)

int

Número máximo de versões.

  • Defina max_versions ou time_range.

  • Se o número de versões correspondentes exceder max_versions, a resposta retornará as versões mais recentes até atingir esse limite.

time_range (opcional)

array

Intervalo de versões.

  • Defina max_versions ou time_range.

  • Cada coluna de atributo em uma tabela de dados do Tablestore pode ter diferentes versões. Ao definir time_range, apenas os dados dentro desse intervalo são retornados.

limit (opcional)

int

Número máximo de linhas retornadas por solicitação. Deve ser maior que 0. Se mais linhas corresponderem à consulta, a resposta retorna a quantidade especificada de linhas e uma chave primária inicial para a próxima solicitação.

columns_to_get (opcional)

array

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

  • Se não definido, a resposta retorna linhas completas.

  • Se definido e uma linha não contiver nenhuma das colunas especificadas, a resposta retorna null para essa linha.

column_filter (opcional)

array

Condição de filtro. Para mais informações, consulte Filtros.

  • Se columns_to_get e column_filter estiverem definidos, o Tablestore aplica primeiro columns_to_get e depois column_filter.

Exemplos

Leia dados da tabela test_table em que a chave primária seja maior que row1.

$request = array (
    'table_name' => 'test_table',
    // Set the start primary key
    'inclusive_start_primary_key' => array (
        array('id', 'row1')
    ),
    // Set the end primary key (the response excludes this key)
    'exclusive_end_primary_key'  => array (
        array('id', null, PrimaryKeyTypeConst::CONST_INF_MAX)
    ),
    // Set forward read
    'direction' => DirectionConst::CONST_FORWARD,
    // Set the number of versions to read
    'max_versions' => 1
);

try {
    // Call getRange to read rows
    $response = $client->getRange ($request);

    // Process the response
    echo "* Read CU Cost: " . $response['consumed']['capacity_unit']['read'] . "\n";
    echo "* Write CU Cost: " . $response['consumed']['capacity_unit']['write'] . "\n";
    echo "* Row Data: " . "\n";
    foreach ($response['rows'] as $row) {
        echo json_encode($row) . "\n";
    }
} catch (Exception $e){
    echo "Get Range failed.";
}

Uma única varredura de intervalo retorna até 5.000 linhas ou 4 MB. Caso o resultado exceda esses limites, a resposta incluirá uma próxima chave primária inicial. Use consultas iterativas para ler os dados restantes.

while (true) {
    // Call getRange to read rows
    $response = $client->getRange ($request);
    // Process the response
    echo "* Read CU Cost: " . $response['consumed']['capacity_unit']['read'] . "\n";
    echo "* Write CU Cost: " . $response['consumed']['capacity_unit']['write'] . "\n";
    echo "* Row Data: " . "\n";
    foreach ($response['rows'] as $row) {
        echo json_encode($row) . "\n";
    }
    
    if ($response['next_start_primary_key'] != null){
        $request['inclusive_start_primary_key'] = $response['next_start_primary_key'];
    } else {
        break;
    }
}

Você também pode definir as seguintes configurações opcionais:

  • Defina a direção de leitura como regressiva.

    $request = array (
        'table_name' => 'test_table',
        // Set the start primary key (for backward reads, the start key must be greater than the end key)
        'inclusive_start_primary_key' => array (
            array('id', null, PrimaryKeyTypeConst::CONST_INF_MAX)
        ),
        // Set the end primary key (the response excludes this key)
        'exclusive_end_primary_key'  => array (
            array('id', 'row1')
        ),
        // Set backward read
        'direction' => DirectionConst::CONST_BACKWARD,
        // Set the number of versions to read
        'max_versions' => 1
    );
  • Defina um intervalo de versões. Apenas os dados dentro do intervalo especificado serão retornados.

    // Set the version range to one day before the current time
    $request['time_range'] = array (
        'start_time' => intval(microtime(true) * 1000) - 86400 * 1000,
        'end_time' => intval(microtime(true) * 1000)
    );
  • Especifique as colunas de atributo a serem lidas.

    $request['columns_to_get'] = array('col2');
  • Defina o número máximo de linhas retornadas por solicitação.

    $request['limit'] = 10;

Referências

Leitura de dados em lote