このトピックでは、.NET 用 Tablestore SDK を使用して SQL 文を実行しデータをクエリする方法について説明します。
使用上の注意
SQL クエリ機能は、.NET 用 Tablestore SDK V5.0.0 以降でサポートされています。 SQL クエリ機能を使用する場合は、サポートされているバージョンの .NET 用 Tablestore SDK がインストールされていることを確認してください。
詳細については、「.NET 用 Tablestore SDK のバージョン履歴」をご参照ください。
前提条件
クライアントが初期化されていること。 詳細については、「Tablestore クライアントを初期化する」をご参照ください。
データをクエリするテーブルのマッピングテーブルが作成されていること。 詳細については、「マッピングテーブルを作成する」をご参照ください。
例
select pk0,pk1,col0,col1,date_col,geo_col from test_table limit 20
文を使用して test_table テーブルのデータをクエリし、最大 20 行のデータを返す方法の例を次に示します。 システムは、クエリ文のリクエストタイプ、戻り値のスキーマ、および返された結果を返します。
/// <summary>
/// データをクエリします。
/// </summary>
/// <param name="otsClient"></param>
public static void QueryData(OTSClient otsClient)
{
SQLQueryRequest sqlQueryRequest = new SQLQueryRequest("select pk0,pk1,col0,col1,date_col,geo_col from test_table limit 20");
SQLQueryResponse sqlQueryResponse = otsClient.SQLQuery(sqlQueryRequest);
SQLTableMeta sqlTableMeta = sqlQueryResponse.GetSQLResultSet().GetSQLTableMeta();
Console.WriteLine(JsonConvert.SerializeObject(sqlTableMeta.GetSchema()));
ISQLResultSet resultSet = sqlQueryResponse.GetSQLResultSet();
while (resultSet.HasNext())
{
ISQLRow row = resultSet.Next();
Console.WriteLine(row.GetString("pk0") + " , " + row.GetLong("pk1") + " , " + row.GetString("col0") + " , " +
row.GetLong("col1") + " , " + row.GetString("date_col") + " , " + row.GetString("geo_col"));
}
}
FAQ
詳細については、「SQL を使用してデータをクエリするときに「メインテーブルのスキャン行数がクォータを超えています。メインテーブルの行クォータは 100000 です」というエラーメッセージが表示された場合の対処方法」をご参照ください。
詳細については、「SQL 文を実行してデータをクエリするときにデータ遅延が発生した場合の対処方法」をご参照ください。
詳細については、「ワイルドカード検索を使用してデータをクエリするときに「[WILDCARD_QUERY] クエリのフィールド値の長さが 32 を超えています」という例外が発生した場合の対処方法」をご参照ください。
参考資料
詳細については、「データのクエリ」をご参照ください。
詳細については、「SQL クエリの一般的なエラーをトラブルシューティングする方法」をご参照ください。