

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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에 이미 익숙하거나 도메인을 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) | 윈도 함수용 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 대시보드 사용자 인터페이스입니다. 자세한 내용은 [쿼리 워크벤치](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>

JDBC(Java Database Connectivity) 드라이버를 사용하여 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>

오픈 데이터베이스 연결(ODBC) 드라이버는 [Microsoft Excel](https://github.com/opensearch-project/sql-odbc/blob/main/docs/user/microsoft_excel_support.md)과 같은 비즈니스 인텔리전스 및 데이터 시각화 애플리케이션을 SQL 플러그인에 연결할 수 있는 Windows 및 macOS용 읽기 전용 ODBC 드라이버입니다.

드라이버 설치에 대한 정보는 [GitHub의 SQL 리포지토리](https://github.com/opensearch-project/sql-odbc)를 확인하세요.