Tous les produits
Search
Centre de documentation

Tablestore:Batch read data

Dernière mise à jour :Aug 19, 2026

Lisez des données depuis plusieurs tables en une seule requête par lot à l'aide du SDK PHP pour Tablestore.

Remarques d'utilisation

Une opération de lecture par lot permet de récupérer jusqu'à 100 lignes de données.

Prérequis

Initialiser un client Tablestore

Méthode

public function batchGetRow(array $request)

Le paramètre $request contient les champs suivants.

  • tables (Obligatoire) array : configuration de la lecture par lot. Ce champ contient les éléments suivants.

    Nom

    Type

    Description

    table_name (Obligatoire)

    string

    Nom de la table de données.

    primary_keys (Obligatoire)

    array

    Noms et valeurs des colonnes de clé primaire des lignes à lire.

    • Les types de données des colonnes de clé primaire peuvent être STRING, INTEGER ou BINARY.

    • Le nombre et les types de clés primaires doivent correspondre à ceux de la table de données.

    max_versions (Facultatif)

    int

    Nombre maximal de versions à renvoyer.

    • Définissez max_versions ou time_range, mais pas les deux.

    • Si le nombre de versions existantes dépasse le maximum spécifié, le système renvoie les dernières versions.

    time_range (Facultatif)

    array

    Plage temporelle des versions de données.

    • Définissez max_versions ou time_range, mais pas les deux.

    • Chaque colonne d'attribut d'une table Tablestore peut avoir plusieurs versions de données. Seules les données comprises dans la plage de versions spécifiée sont renvoyées.

    columns_to_get (Facultatif)

    array

    Colonnes à lire (colonnes de clé primaire ou colonnes d'attribut).

    • Si vous ne définissez pas columns_to_get, la ligne entière est renvoyée.

    • Si vous définissez columns_to_get et que la ligne à lire ne contient aucune des colonnes de données spécifiées, le système renvoie null.

    column_filter (Facultatif)

    array

    Condition de filtrage. Pour plus d'informations, consultez Filtres.

    • Si vous définissez à la fois columns_to_get et column_filter, le système sélectionne d'abord les lignes selon columns_to_get, puis filtre les données selon column_filter.

Exemples

Lisez deux lignes dont les valeurs de clé primaire sont row1 et row2 depuis la table 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.";
}

Configurez les paramètres de lecture par lot selon vos besoins :

  • Lisez des données depuis plusieurs tables en spécifiant une configuration distincte pour chaque table.

    $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
        )
    );
  • Définissez une plage temporelle pour les versions de données à récupérer. Seules les données comprises dans la plage temporelle spécifiée sont renvoyées.

    // 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)
    );
  • Spécifiez les colonnes d'attribut à récupérer.

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

Références

Lire des données dans une plage