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

Tablestore:テーブル情報のクエリ

最終更新日:Jul 09, 2025

このトピックでは、PHP SDK を使用してテーブルの詳細情報をクエリする方法について説明します。

前提条件

クライアントが初期化されていること。 詳細については、「Tablestore クライアントを初期化する」をご参照ください。

メソッドの説明

public function describeTable(array $request)

$request パラメーターの説明

table_name (必須) string: テーブルの名前。

サンプルコード

次のサンプルコードは、test_table テーブルの詳細情報をクエリする方法を示しています。

try{
    $response = $client->describeTable(array (
        'table_name' => 'test_table', // テーブル名
    ));

    // テーブルスキーマ情報
    echo "* Table name: " . $response['table_meta']['table_name'] . "\n"; // テーブル名
    echo "* Primary key information \n"; // プライマリキー情報
    foreach ($response['table_meta']['primary_key_schema'] as $primaryKey) {
        echo "{$primaryKey[0]}: {$primaryKey[1]} \n"; // プライマリキー名:プライマリキー型
    }
    echo "* Predefined column information \n"; // 定義済みカラム情報
    foreach ($response['table_meta']['defined_column'] as $definedColumn) {
        echo "{$definedColumn[0]}: {$definedColumn[1]} \n"; // 定義済みカラム名:定義済みカラム型
    }

    // テーブル設定情報
    echo "* Table configuration information \n"; // テーブル設定情報
    echo "Time to live: " . $response['table_options']['time_to_live'] . "\n"; // データの有効期限
    echo "Max versions: " . $response['table_options']['max_versions'] . "\n"; // 最大バージョン数
    echo "Max version offset: " . $response['table_options']['deviation_cell_version_in_sec'] . "\n"; // 最大バージョンオフセット
    echo "Whether to allow updates: " . ($response['table_options']['allow_update'] ? 'true' : "false") . "\n"; // 更新を許可するかどうか

    // Table Stream 情報
    echo "* Whether to enable Stream: " . ($response['stream_details']['enable_stream'] ? 'true' : "false") . "\n"; // Stream を有効にするかどうか
    if($response['stream_details']['enable_stream']){ // Stream が有効になっている場合
        echo "Stream expiration time: " . $response['stream_details']['expiration_time'] . "\n"; // Stream の有効期限
    }

    // テーブルの予約済み読み取り/書き込みスループット
    echo "* Reserved read/write throughput \n"; // 予約済み読み取り/書き込みスループット
    echo "Reserved read throughput: " . $response['capacity_unit_details']['capacity_unit']['read'] . "\n"; // 予約済み読み取りスループット
    echo "Reserved write throughput: " . $response['capacity_unit_details']['capacity_unit']['write'] . "\n"; // 予約済み書き込みスループット

    // セカンダリインデックス情報
    foreach ($response['index_metas'] as $indexMeta) {
        echo "* Secondary index name: " . $indexMeta['name'] . "\n"; // セカンダリインデックス名
        echo "Primary key columns: [" . implode(", ", $indexMeta['primary_key']) . "]\n"; // プライマリキーカラム
        echo "Predefined columns: [" . implode(", ", $indexMeta['defined_column']) . "]\n"; // 定義済みカラム
        echo "Secondary index type: " . $indexMeta['index_type'] . "\n"; // セカンダリインデックスタイプ
        echo "Secondary index update mode: " . $indexMeta['index_update_mode'] . "\n"; // セカンダリインデックス更新モード
    }
} catch (Exception $e) {
    echo 'Describe table failed.'; // テーブルの記述に失敗しました。
}