このトピックでは、Tablestore SDK for Java を使用してデータテーブルの情報をクエリする方法について説明します。
前提条件
クライアントが初期化されていること。 詳細については、「Tablestore クライアントを初期化する」をご参照ください。
メソッド
public DescribeTableResponse describeTable(DescribeTableRequest request) throws TableStoreException, ClientExceptionサンプルコード
次のサンプルコードは、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("* Stream を有効にするかどうか: " + 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());
}
}