すべてのプロダクト
Search
ドキュメントセンター

Tablestore:バッチ読み取りデータ

最終更新日:Mar 10, 2026

Tablestore PHP SDK を使用して、単一のバッチリクエストで複数のテーブルからデータを読み取ります。

注意事項

単一のバッチ読み取り操作で、最大 100 行のデータを取得できます。

前提条件

Tablestore クライアントの初期化

メソッド

public function batchGetRow(array $request)

$request パラメーターには、次のフィールドが含まれています。

  • tables (必須) array:バッチ読み取りデータに関する情報。このパラメーターには、次のフィールドが含まれています。

    名前

    説明

    table_name (必須)

    string

    データテーブルの名前。

    primary_keys (必須)

    array

    プライマリキー列名と値を含むプライマリキー情報。

    • プライマリキー列のデータの型は、STRING、INTEGER、または BINARY です。

    • プライマリキーの数と型は、データテーブルのものと同じである必要があります。

    max_versions (オプション)

    int

    返される最大バージョン数。

    • max_versions または time_range のいずれかを設定します。

    • 指定された最大値よりも多くのバージョンが存在する場合、システムは最新バージョンを返します。

    time_range (オプション)

    array

    データバージョンの時間範囲。

    • max_versions または time_range のいずれかを設定します。

    • Tablestore テーブルの各属性列には複数のデータバージョンを含めることができます。指定されたバージョン範囲内のデータのみが返されます。

    columns_to_get (オプション)

    array

    読み取るデータ列。これらはプライマリキー列または属性列にすることができます。

    • columns_to_get を設定しない場合、行全体が返されます。

    • columns_to_get を設定し、読み取る行に指定されたデータ列のいずれも含まれていない場合、システムは null を返します。

    column_filter (オプション)

    array

    フィルター条件。詳細については、「フィルター」をご参照ください。

    • columns_to_get と column_filter の両方を設定した場合、システムは最初に columns_to_get に基づいて行を選択し、次に column_filter に基づいてデータをフィルターします。

test_table テーブルから、プライマリキー値が row1row2 の 2 行を読み取ります。

$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 {
    // batchGetRow メソッドを呼び出して行データを読み取ります。
    $response = $client->batchGetRow ($request);

    // 応答を処理します。
    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.";
}

必要に応じてバッチ読み取りパラメーターを設定します。

  • 複数のテーブルからデータを読み取ります。バッチ読み取り操作は、複数のテーブルから同時にデータを取得することをサポートしています。各テーブルに MultiRowQueryCriteria を指定します。

    $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
        )
    );
  • 取得するデータバージョンの時間範囲を設定します。指定された時間範囲内のデータのみが返されます。

    // クエリの時間範囲を過去 24 時間に設定します。
    $table['time_range'] = array (
        'start_time' => intval(microtime(true) * 1000) - 86400 * 1000,
        'end_time' => intval(microtime(true) * 1000)
    );
  • 取得する属性列を指定します。

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

参考

範囲内のデータ読み取り