全部產品
Search
文件中心

Tablestore:查詢表資訊

更新時間:May 14, 2025

本文介紹如何通過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());
    }
}

相關文檔

查詢時序表資訊