Todos os produtos
Search
Central de documentação

Tablestore:Batch read data

Última atualização: Jun 30, 2026

Leia dados de várias tabelas em uma única solicitação em lote com o Tablestore PHP SDK.

Observações de uso

Uma única operação de leitura em lote recupera até 100 linhas de dados.

Pré-requisitos

Inicializar um cliente Tablestore

Método

public function batchGetRow(array $request)

O parâmetro $request contém os seguintes campos.

  • tables (Obrigatório) array: Configuração da leitura em lote. Inclui os campos a seguir.

    Nome

    Tipo

    Descrição

    table_name (Obrigatório)

    string

    Nome da tabela de dados.

    primary_keys (Obrigatório)

    array

    Nomes e valores das colunas de chave primária das linhas a ler.

    • Os tipos de dados das colunas de chave primária podem ser STRING, INTEGER ou BINARY.

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

    max_versions (Opcional)

    int

    Número máximo de versões a retornar.

    • Defina max_versions ou time_range.

    • Se houver mais versões que o máximo especificado, o sistema retorna as mais recentes.

    time_range (Opcional)

    array

    Intervalo de tempo das versões de dados.

    • Defina max_versions ou time_range.

    • Cada coluna de atributo em uma tabela do Tablestore pode ter várias versões de dados. O sistema retorna apenas os dados dentro do intervalo de versão especificado.

    columns_to_get (Opcional)

    array

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

    • Sem a definição de columns_to_get, o sistema retorna a linha inteira.

    • Ao definir columns_to_get, se a linha lida não contiver nenhuma das colunas de dados especificadas, o sistema retorna null.

    column_filter (Opcional)

    array

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

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

Exemplos

Leitura de duas linhas com valores de chave primária row1 e row2 na tabela test_table:

$table = array (
    'table_name' => 'test_table',
    'max_versions' => 1,
    'primary_keys' => array (
        array ( array('id', 'row1') ),
        array ( array('id', 'row2') )
    )
);

$request = array (
    'tables' => array (
        $table
    )
);

try {
    // Call the batchGetRow method to read row data.
    $response = $client->batchGetRow ($request);

    // Process the response.
    foreach ($response['tables'] as $tableGroup) {
        echo "* Table: " . $tableGroup['table_name'] . "\n";
        foreach ($tableGroup['rows'] as $row) {
            if ($row['is_ok']) {
                if ($row['primary_key'] != null) {
                    echo "Succeeded Row: " . json_encode($row['primary_key']) . json_encode($row['attribute_columns']) . "\n";
                } else {
                    echo "Succeeded Row: This row is not exist." . "\n";
                }
            } else {
                echo "Failed Row: " . $row['error']['code'] . '. ' . $row['error']['message'] . "\n";
            }
        }
    }
} catch (Exception $e){
    echo "Batch get row failed.";
}

Configure os parâmetros de leitura em lote conforme necessário:

  • Para ler dados de várias tabelas, especifique uma configuração distinta para cada uma.

    $table1 = array (
        'table_name' => 'orders_small',
        'max_versions' => 1,
        'primary_keys' => array (
            array (
                array('order_id', '90fb478c-1360-11f0-a34d-00163e30a2a9')
            )
        )
    );
    
    $request = array (
        'tables' => array (
            $table,
            $table1
        )
    );
  • Defina um intervalo de tempo para as versões de dados a recuperar. O sistema retorna apenas os dados dentro do período especificado.

    // Set the time range for the query to the last 24 hours.
    $table['time_range'] = array (
        'start_time' => intval(microtime(true) * 1000) - 86400 * 1000,
        'end_time' => intval(microtime(true) * 1000)
    );
  • Especifique as colunas de atributo a recuperar.

    $table['columns_to_get'] = array('col2');

Referências

Ler dados em um intervalo