このトピックでは、Tablestore SDK for Java を使用して、SQL 文を実行することでテーブル内のデータをクエリする方法について説明します。
使用上の注意
SQL クエリ機能は、Tablestore SDK for Java V5.13.0 以降でサポートされています。 SQL クエリ機能を使用する場合は、サポートされているバージョンの Tablestore SDK for Java がインストールされていることを確認してください。
前提条件
Tablestore クライアントが初期化されていること。 詳細については、「Tablestore クライアントを初期化する」をご参照ください。
データをクエリするテーブルのマッピングテーブルが作成されていること。 詳細については、「テーブルのマッピングテーブルを作成する」をご参照ください。
方法
public SQLQueryResponse sqlQuery(SQLQueryRequest request) throws TableStoreException, ClientExceptionサンプルコード
次のサンプルコードは、SELECT 文を実行して test_table テーブルのデータをクエリし、最大 10 行を返す方法の例を示しています。
コードを実行する前に、コード内のテーブル名とフィールド名を実際の情報に置き換えてください。
public static void queryDataExample(SyncClient client) {
// SQL 文を指定します。
SQLQueryRequest request = new SQLQueryRequest("select order_id, user_id, sku_id, price, num, total_price, order_status, create_time, modified_time from test_table limit 10;");
SQLQueryResponse response = client.sqlQuery(request);
// RequestId 情報を指定します。
System.out.println("RequestId: " + response.getRequestId());
/*// 読み取りスループット消費量情報。
System.out.println("読み取りスループット消費量(テーブル別):");
for(Map.Entry<String, ConsumedCapacity> entry : response.getConsumedCapacity().entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue().getCapacityUnit().getReadCapacityUnit() + "CU");
}*/
// SQL クエリ結果を取得します。
SQLResultSet resultSet = response.getSQLResultSet();
// スキーマ情報を返します。
System.out.println("Schema: " + response.getSQLResultSet().getSQLTableMeta().getSchema());
// データの詳細
System.out.println("データの詳細:");
while (resultSet.hasNext()) {
SQLRow row = resultSet.next();
System.out.println(row.get("order_id") + ", "
+ row.get("user_id") + ", "
+ row.get("sku_id") + ", "
+ row.get("price") + ", "
+ row.get("num") + ", "
+ row.get("total_price") + ", "
+ row.get("order_status") + ", "
+ row.get("create_time") + ", "
+ row.get("modified_time"));
}
}