查询表信息

本文介绍如何通过PHP SDK查询数据表的详细信息。

前提条件

初始化Tablestore Client

方法说明

public function describeTable(array $request)

$request参数说明

table_name(必选)string:数据表名称。

示例代码

以下示例代码用于查询test_table表的详细信息。

try{
    $response = $client->describeTable(array (
        'table_name' => 'test_table',
    ));

    // 数据表结构信息
    echo "* 数据表名称: " . $response['table_meta']['table_name'] . "\n";
    echo "* 主键信息 \n";
    foreach ($response['table_meta']['primary_key_schema'] as $primaryKey) {
        echo "{$primaryKey[0]}: {$primaryKey[1]} \n";
    }
    echo "* 预定义列信息 \n";
    foreach ($response['table_meta']['defined_column'] as $definedColumn) {
        echo "{$definedColumn[0]}: {$definedColumn[1]} \n";
    }

    // 数据表配置信息
    echo "* 数据表配置信息 \n";
    echo "数据生命周期: " . $response['table_options']['time_to_live'] . "\n";
    echo "最大版本数: " . $response['table_options']['max_versions'] . "\n";
    echo "有效版本偏差: " . $response['table_options']['deviation_cell_version_in_sec'] . "\n";
    echo "是否允许更新: " . ($response['table_options']['allow_update'] ? 'true' : "false") . "\n";

    // 数据表Stream信息
    echo "* 是否开启Steam: " . ($response['stream_details']['enable_stream'] ? 'true' : "false") . "\n";
    if($response['stream_details']['enable_stream']){
        echo "Stream过期时间: " . $response['stream_details']['expiration_time'] . "\n";
    }

    // 数据表预留读写吞吐量
    echo "* 预留读写吞吐量 \n";
    echo "预留读吞吐量: " . $response['capacity_unit_details']['capacity_unit']['read'] . "\n";
    echo "预留写吞吐量: " . $response['capacity_unit_details']['capacity_unit']['write'] . "\n";

    // 二级索引信息
    foreach ($response['index_metas'] as $indexMeta) {
        echo "* 二级索引名称: " . $indexMeta['name'] . "\n";
        echo "主键列表: [" . implode(", ", $indexMeta['primary_key']) . "]\n";
        echo "预定义列列表: [" . implode(", ", $indexMeta['defined_column']) . "]\n";
        echo "二级索引类型: " . $indexMeta['index_type'] . "\n";
        echo "二级索引更新模式: " . $indexMeta['index_update_mode'] . "\n";
    }
} catch (Exception $e) {
    echo 'Describe table failed.';
}