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

Tablestore:単一行のデータの読み取り

最終更新日:Mar 10, 2026

PHP SDK を使用して、プライマリキーに基づいて Tablestore テーブルから単一行を読み取ります。

注意事項

データを読み取る際は、自動採番主キー列の値を含め、完全なプライマリキーの値を指定する必要があります。

事前準備

Tablestore クライアントの初期化

メソッドの説明

public function getRow(array $request)

$request パラメーターの説明

名前

説明

table_name (必須)

string

データテーブルの名前。

primary_key (必須)

array

プライマリキーの情報。列名と値が含まれます。

  • プライマリキー列のデータ型には、STRING、INTEGER、BINARY があります。

  • プライマリキーの数と型は、データテーブルのものと一致している必要があります。

max_versions (任意)

int

返すデータバージョンの最大数。

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

  • 一致するデータバージョンがこの値を超えた場合、システムは指定された制限まで新しいバージョンから古いバージョンの順に返します。

time_range (任意)

array

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

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

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

columns_to_get (任意)

array

読み取るデータ列。プライマリキー列と属性列の両方を受け入れます。

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

  • 設定されていても、行に指定された列が含まれていない場合は、null が返されます。

column_filter (任意)

array

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

  • columns_to_get と column_filter の両方が設定されている場合、システムはまず指定された列を取得し、その結果にフィルター条件を適用します。

transaction_id (任意)

string

ローカルトランザクションを一意に識別するローカルトランザクション ID。詳細については、「ローカルトランザクション」をご参照ください。

コード例

次の例では、プライマリキーの値が row1 の単一行を読み取ります。

$request = array (
    'table_name' => 'test_table',
    // プライマリキーの構築
    'primary_key' => array (
        array ('id', 'row1')
    ),
    'max_versions' => 1
);

try {
    // getRow メソッドを呼び出して行データを読み取る
    $response = $client->getRow ($request);
    echo "* Read CU Cost: " . $response['consumed']['capacity_unit']['read'] . "\n";
    echo "* Write CU Cost: " . $response['consumed']['capacity_unit']['write'] . "\n";
    echo "* Row Data: " . "\n";
    echo "Primary Key: ". json_encode($response['primary_key']) . "\n";
    echo "Attribute Columns: ". json_encode($response['attribute_columns']) . "\n";
} catch (Exception $e){
    echo "行の取得に失敗しました。";
}
  • バージョン範囲を設定して、その範囲内のデータのみを返すようにします。

    // クエリデータのバージョン範囲を現在時刻の 1 日前に設定
    $request['time_range'] = array (
        'start_time' => intval(microtime(true) * 1000) - 86400 * 1000,
        'end_time' => intval(microtime(true) * 1000)
    );
  • 読み取る属性列を指定します。

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

参考文献