查询表信息

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

前提条件

初始化Tablestore Client

方法说明

public DescribeTableResponse describeTable(DescribeTableRequest request) throws TableStoreException, ClientException

DescribeTableRequest参数说明

  • tableName(必选)String:数据表名称。

示例代码

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

public static void describeTableExample(SyncClient client) {
    DescribeTableRequest request = new DescribeTableRequest("test_table");
    DescribeTableResponse response = client.describeTable(request);

    // 获取数据表结构信息
    TableMeta tableMeta = response.getTableMeta();
    System.out.println("* 数据表名称:" + tableMeta.getTableName());
    System.out.println("* 主键信息");
    for(PrimaryKeySchema primaryKeySchema : tableMeta.getPrimaryKeyList()) {
        System.out.println(primaryKeySchema);
    }
    System.out.println("* 预定义列信息");
    for(DefinedColumnSchema definedColumnSchema : tableMeta.getDefinedColumnsList()) {
        System.out.println(definedColumnSchema);
    }

    // 获取数据表的配置信息
    TableOptions tableOptions = response.getTableOptions();
    System.out.println("* 数据表配置信息");
    System.out.println("最大版本数:" + tableOptions.getMaxVersions());
    System.out.println("数据生命周期:" + tableOptions.getTimeToLive());
    System.out.println("有效版本偏差:" + tableOptions.getMaxTimeDeviation());
    System.out.println("是否允许更新:" + tableOptions.getAllowUpdate());

    // 获取数据表Stream信息
    StreamDetails streamDetails = response.getStreamDetails();
    System.out.println("* 是否开启Steam:" + streamDetails.isEnableStream());
    if(streamDetails.isEnableStream())
        System.out.println("Stream过期时间:" + streamDetails.getExpirationTime());

    // 获取数据表加密设置
    SSEDetails sseDetails = response.getSseDetails();
    System.out.println("* 是否开启数据表加密:" + sseDetails.isEnable());
    if(sseDetails.isEnable())
        System.out.println("加密方式:" + sseDetails.getKeyType());
        
    // 获取数据表预留读写吞吐量
    ReservedThroughputDetails reservedThroughputDetails = response.getReservedThroughputDetails();
    System.out.println("* 预留读写吞吐量");
    System.out.println("预留读吞吐量:" + reservedThroughputDetails.getCapacityUnit().getReadCapacityUnit());
    System.out.println("预留写吞吐量:" + reservedThroughputDetails.getCapacityUnit().getWriteCapacityUnit());

    // 获取二级索引信息
    for(IndexMeta indexMeta : response.getIndexMeta()) {
        System.out.println("* 二级索引名称:" + indexMeta.getIndexName());
        System.out.println("主键列表:" + indexMeta.getPrimaryKeyList().toString());
        System.out.println("预定义列列表:" + indexMeta.getDefinedColumnsList().toString());
        System.out.println("二级索引类型:" + indexMeta.getIndexType());
        System.out.println("二级索引更新模式:" + indexMeta.getIndexUpdateMode());
    }
}

相关文档

查询时序表信息