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

Tablestore:データのクエリ

最終更新日:Dec 28, 2024

テーブルまたは検索インデックスのマッピングテーブルを作成した後、SELECT ステートメントを実行して、マッピングテーブルを使用してデータのクエリと分析を行うことができます。

説明

SELECT ステートメントの詳細については、データのクエリを参照してください。

前提条件

使用方法

Tablestore SDK for Java V5.13.0 以降は、SQL クエリ機能をサポートしています。SQL クエリ機能を使用するには、SQL クエリ機能をサポートするバージョンの Tablestore Java SDK を使用していることを確認してください。Tablestore SDK for Java のバージョン履歴については、Tablestore SDK for Java のバージョン履歴を参照してください。

パラメーター

パラメーター

説明

query

SQL ステートメント。必要な機能に基づいてパラメーターを設定します。

次のサンプルコードは、select pk, long_value, double_value, string_value, bool_value from test_table limit 20 ステートメントを実行して test_table という名前のテーブル内のデータをクエリし、最大 20 行のデータを返す方法の例を示しています。システムは、リクエストタイプ、返された結果のスキーマ、およびクエリステートメントの返された結果を返します。

private static void queryData(SyncClient client) {
    // SQLリクエストを作成します。
    SQLQueryRequest request = new SQLQueryRequest("select pk, long_value, double_value, string_value, bool_value from test_table limit 20");

    // SQLリクエストへのレスポンスを取得します。
    SQLQueryResponse response = client.sqlQuery(request);

    // SQLリクエストタイプを取得します。
    System.out.println("response type: " + response.getSQLStatementType());

    // SQLリクエストの返された結果のスキーマを取得します。
    SQLTableMeta tableMeta = response.getSQLResultSet().getSQLTableMeta();
    System.out.println("response table meta: " + tableMeta.getSchema());

    // SQLリクエストの返された結果を取得します。
    SQLResultSet resultSet = response.getSQLResultSet();
    System.out.println("response resultset:");
    while (resultSet.hasNext()) {
        SQLRow row = resultSet.next();
        System.out.println(row.getString(0) + ", " + row.getString("pk") + ", " +
                           row.getLong(1) + ", " + row.getLong("long_value") + ", " +
                           row.getDouble(2) + ", " + row.getDouble("double_value") + ", " +
                           row.getString(3) + ", " + row.getString("string_value") + ", " +
                           row.getBoolean(4) + ", " + row.getBoolean("bool_value"));
    }
}

サンプルレスポンス:

response type: SQL_SELECT
response table meta: [pk:STRING, long_value:INTEGER, double_value:DOUBLE, string_value:STRING, bool_value:BOOLEAN]
response resultset:
binary_null, binary_null, 1, 1, 1.0, 1.0, a, a, false, false
bool_null, bool_null, 1, 1, 1.0, 1.0, a, a, null, null
double_null, double_null, 1, 1, null, null, a, a, true, true
long_null, long_null, null, null, 1.0, 1.0, a, a, true, true
string_null, string_null, 1, 1, 1.0, 1.0, null, null, false, false

FAQ

参考資料

  • SQL ステートメントを実行してデータクエリと計算を高速化する場合、セカンダリインデックスまたは検索インデックスを作成できます。詳細については、インデックス選択ポリシー計算プッシュダウンを参照してください。

  • データテーブルに属性列を追加または削除した場合、ALTER TABLE ステートメントを実行して、データテーブル用に作成されたマッピングテーブルを変更できます。詳細については、マッピングテーブルの属性列の更新を参照してください。

  • テーブルの説明をクエリする場合、DESCRIBE ステートメントを実行できます。詳細については、テーブルに関する情報のクエリを参照してください。

  • テーブルまたは検索インデックス用に作成されたマッピングテーブルが不要になった場合、DROP MAPPING TABLE ステートメントを実行してマッピングテーブルを削除できます。詳細については、マッピングテーブルの削除を参照してください。

  • テーブルのインデックス情報を表示する場合、SHOW INDEX ステートメントを実行できます。詳細については、テーブルのインデックス情報のクエリを参照してください。

  • 現在のデータベース内のマッピングテーブルの名前を一覧表示する場合、SHOW TABLES ステートメントを実行できます。詳細については、マッピングテーブル名の一覧表示を参照してください。

  • MaxCompute、Spark、Hive、HadoopMR、Function Compute、Flink、PrestoDB などの計算エンジンを使用して、テーブル内のデータの計算と分析を行うこともできます。詳細については、概要を参照してください。