Todos los productos
Search
Centro de documentos

Tablestore:Lectura de datos por lotes

Última actualización: Sep 03, 2026

Lea datos de varias tablas en una sola solicitud por lotes mediante el SDK de PHP para Tablestore.

Notas de uso

Una sola operación de lectura por lotes puede recuperar hasta 100 filas de datos.

Requisitos previos

Initialize a Tablestore client

Método

public function batchGetRow(array $request)

El parámetro $request contiene los siguientes campos.

  • tables (obligatorio) array: Configuración de lectura por lotes. Contiene los siguientes campos.

    Nombre

    Tipo

    Descripción

    table_name (obligatorio)

    string

    Nombre de la tabla de datos.

    primary_keys (obligatorio)

    array

    Nombres y valores de las columnas de clave principal de las filas por leer.

    • Los tipos de datos de las columnas de clave principal pueden ser STRING, INTEGER o BINARY.

    • La cantidad y los tipos de claves principales deben coincidir con los de la tabla de datos.

    max_versions (opcional)

    int

    Número máximo de versiones por devolver.

    • Establezca max_versions o time_range.

    • Si existen más versiones que el máximo especificado, el sistema devuelve las más recientes.

    time_range (opcional)

    array

    Intervalo de tiempo de las versiones de datos.

    • Establezca max_versions o time_range.

    • Cada columna de atributo en una tabla de Tablestore puede tener varias versiones de datos. Solo se devuelven los datos dentro del intervalo de versiones especificado.

    columns_to_get (opcional)

    array

    Columnas por leer. Pueden ser columnas de clave principal o de atributo.

    • Si no establece columns_to_get, se devuelve la fila completa.

    • Si establece columns_to_get y la fila por leer no contiene ninguna de las columnas de datos especificadas, el sistema devuelve null.

    column_filter (opcional)

    array

    Condición de filtro. Para obtener más información, consulte Filters.

    • Si establece tanto columns_to_get como column_filter, el sistema selecciona primero las filas según columns_to_get y luego filtra los datos según column_filter.

Ejemplos

Lea dos filas con valores de clave principal row1 y row2 de la tabla 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 los parámetros de lectura por lotes según sea necesario:

  • Lea datos de varias tablas al especificar una configuración independiente para cada una.

    $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
        )
    );
  • Establezca un intervalo de tiempo para las versiones de datos por recuperar. Solo se devuelven los datos dentro del intervalo 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 las columnas de atributo por recuperar.

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

Referencias

Read data in a range