

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SQL を用いた Amazon OpenSearch Service のデータのクエリを行う
<a name="sql-support"></a>

JSON ベースの [OpenSearch クエリ DSL](https://docs.opensearch.org/latest/opensearch/query-dsl/full-text/) を使用するのではなく、SQL を使用して Amazon OpenSearch Service のクエリを行うことができます。SQL を用いたクエリの実施は、その言語にすでに精通している場合や、それを使用するアプリケーションにドメインを統合する場合に役立ちます。SQL サポートは、OpenSearch または Elasticsearch 6.5 以降を実行しているドメインで利用できます。

**注記**  
このドキュメントでは、OpenSearch Service と SQL プラグインのさまざまなバージョン、および JDBC ドライバーおよび ODBC ドライバーのバージョン互換性について説明します。基本および複雑なクエリ、関数、メタデータクエリ、集計関数の構文についての情報は、オープンソースの「[OpenSearch のドキュメント](https://opensearch.org/docs/latest/search-plugins/sql/sql/index/)」を参照してください。

次のテーブルを使用して、OpenSearch および Elasticsearch の各バージョンでサポートされている SQL プラグインのバージョンを見つけます。


**OpenSearch**  

| OpenSearch バージョン | SQL プラグインバージョン | 注目すべき機能 | 
| --- | --- | --- | 
| 2.19.0 | [2.19.0.0](https://github.com/opensearch-project/sql/releases/tag/2.19.0.0) |    | 
| 2.18.0 | [2.18.0.0](https://github.com/opensearch-project/sql/releases/tag/2.18.0.0) |    | 
| 2.17.0 | [2.17.0.0](https://github.com/opensearch-project/sql/releases/tag/2.17.0.0) |    | 
| 2.15.0 | [2.15.0.0](https://github.com/opensearch-project/sql/releases/tag/2.15.0.0) |    | 
| 2.13.0 | [2.13.0.0](https://github.com/opensearch-project/sql/releases/tag/2.13.0.0) |    | 
| 2.11.0 | [2.11.0.0](https://github.com/opensearch-project/sql/releases/tag/2.11.0.0) |  PPL 言語とクエリのサポートを追加  | 
| 2.9.0 | [2.9.0.0](https://github.com/opensearch-project/sql/releases/tag/2.9.0.0) |  Spark コネクターを追加し、テーブル関数と PromQL 関数をサポートします  | 
| 2.7.0 | [2.7.0.0](https://github.com/opensearch-project/sql/releases/tag/2.7.0.0) |  `datasource` API を追加  | 
| 2.5.0 | [2.5.0.0](https://github.com/opensearch-project/sql/releases/tag/2.5.0.0) |    | 
| 2.3.0 | [2.3.0.0](https://github.com/opensearch-project/sql/releases/tag/2.3.0.0) |  `maketime` および `makedate` 日時関数を追加  | 
| 1.3.0 | [1.3.0.0](https://github.com/opensearch-project/sql/releases/tag/1.3.0.0) |  デフォルトのクエリ制限サイズと、値リスト内から選択する IN 句をサポート  | 
| 1.2.0 | [1.2.0.0](https://github.com/opensearch-project/sql/releases/tag/1.2.0.0) |  可視化応答形式の新しいプロトコルを追加  | 
|  1.1.0  | [1.1.0.0](https://github.com/opensearch-project/sql/releases/tag/1.1.0.0) |  SQL と PPL のフィルターとしてマッチ機能をサポートする  | 
| 1.0.0 | [1.0.0.0](https://github.com/opensearch-project/sql/releases/tag/1.0.0.0) | データストリームのクエリをサポートする | 


**Open Distro for Elasticsearch**  

| Elasticsearch バージョン | SQL プラグインバージョン | 注目すべき機能 | 
| --- | --- | --- | 
| 7.10 | [1.13.0](https://github.com/opendistro-for-elasticsearch/sql/releases/tag/v1.13.0.0) | Window 関数の NULL FIRST および LAST、CAST() 関数、SHOW、および DESCRIBE コマンド | 
| 7.9 | [1.11.0](https://github.com/opendistro-for-elasticsearch/sql/releases/tag/v1.11.0.0) | 追加の日付/時刻関数、ORDER BY キーワードの追加 | 
| 7.8 | [1.9.0](https://github.com/opendistro-for-elasticsearch/sql/releases/tag/v1.9.0.0) |  | 
| 7.7 | [1.8.0](https://github.com/opendistro-for-elasticsearch/sql/releases/tag/v1.8.0.0) |  | 
|  7.3  | [1.3.0](https://github.com/opendistro-for-elasticsearch/sql/releases/tag/v1.3.0.0) | 複数の文字列および数値演算子 | 
| 7.1 | [1.1.0](https://github.com/opendistro-for-elasticsearch/sql/releases/tag/v1.1.0.0) |  | 

## サンプル呼び出し
<a name="sql-sample"></a>

SQL を用いてデータのクエリを行うには、次の形式を使用して `_sql` に HTTP リクエストを送信します。

```
POST domain-endpoint/_plugins/_sql
{
  "query": "SELECT * FROM my-index LIMIT 50"
}
```

**注記**  
ドメインが OpenSearch ではなく Elasticsearch を実行している場合、フォーマットは `_opendistro/_sql` になります。

## 注意と相違点
<a name="sql-diff"></a>

`_plugins/_sql` の呼び出しではリクエストボディにインデックス名が含まれるため、バルク、mget、および msearch オペレーションと同じ[アクセスポリシーの考慮事項](ac.md#ac-advanced)が適用されます。これまでどおり、API オペレーションにアクセス許可を付与するときは、[最小権限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)の原則に従う必要があります。

きめ細かなアクセスコントロールでの SQL の使用に関連するセキュリティ上の考慮事項については、「[Amazon OpenSearch Service のきめ細かなアクセスコントロール](fgac.md)」を参照してください。

OpenSearch SQL プラグインには、多くの[調整可能な設定](https://docs.opensearch.org/latest/search-plugins/sql/settings/)があります。OpenSearch Service では、プラグイン設定のパス (`_plugins/_query/settings`) ではなく、`_cluster/settings` パスを使用します。

```
PUT _cluster/settings
{
  "transient" : {
    "plugins.sql.enabled" : true
  }
}
```

従来の Elasticsearch ドメインの場合、`plugins` を `opendistro` に置き換えます。

```
PUT _cluster/settings
{
  "transient" : {
    "opendistro.sql.enabled" : true
  }
}
```

## SQL Workbench
<a name="workbench"></a>

SQL Workbench は、オンデマンド SQL クエリの実行、SQL から REST への変換を行えるほか、テキスト、JSON、JDBC、または CSV として結果を表示および保存できる OpenSearch Dashboards ユーザーインターフェイスです。詳細については、「[クエリワークベンチ](https://docs.opensearch.org/latest/search-plugins/sql/workbench/)」を参照してください。

## SQL CLI
<a name="cli"></a>

SQL CLI は、`opensearchsql` コマンドで起動できるスタンドアロンの Python アプリケーションです。インストール、構成、および使用のステップについては、「[SQL CLI](https://docs.opensearch.org/latest/search-plugins/sql/cli/)」を参照してください。

## JDBC ドライバー
<a name="jdbc-driver"></a>

Java Database Connectivity (JDBC) ドライバーにより、OpenSearch Service ドメインをお気に入りのビジネスインテリジェンス (BI) アプリケーションに統合できます。ドライバーをダウンロードするには、[こちら](https://artifacts.opensearch.org/opensearch-clients/jdbc/opensearch-sql-jdbc-1.1.0.1.jar)をクリックしてください。詳細については、「[ GitHub リポジトリ](https://github.com/opensearch-project/sql-jdbc)」を参照してください。

## ODBC ドライバー
<a name="odbc"></a>

Open Database Connectivity (ODBC) ドライバーは、Windows と macOS 用の、読み取り専用の ODBC ドライバーです。これを使用すれば、[Microsoft Excel](https://github.com/opensearch-project/sql-odbc/blob/main/docs/user/microsoft_excel_support.md) のようなビジネスインテリジェンスやデータ可視化のアプリケーションを SQL プラグインに接続できます。

ドライバーのインストールの詳細については、[GitHub の SQL リポジトリ](https://github.com/opensearch-project/sql-odbc) を参照してください。