

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

# 힌트
<a name="sql-commands-hints-spark"></a>

SQL 분석을 위한 힌트는 쿼리 실행 전략을 안내하는 최적화 지침을 AWS Clean Rooms제공하므로 쿼리 성능을 개선하고 컴퓨팅 비용을 절감할 수 있습니다. 힌트는 Spark 분석 엔진이 실행 계획을 생성하는 방법을 제안합니다.

## 구문
<a name="hints-syntax"></a>

```
SELECT /*+ hint_name(parameters), hint_name(parameters) */ column_list
FROM table_name;
```

힌트는 주석 스타일 구문을 사용하여 SQL 쿼리에 포함되며 SELECT 키워드 바로 뒤에 배치해야 합니다.

## 지원되는 힌트 유형
<a name="supported-hint-types"></a>

AWS Clean Rooms 는 조인 힌트와 파티셔닝 힌트라는 두 가지 범주의 힌트를 지원합니다.

**Topics**
+ [조인 힌트](join-hints.md)
+ [파티셔닝 힌트](partitioning-hints.md)

## 여러 힌트 결합
<a name="combining-multiple-hints"></a>

쉼표로 구분하여 단일 쿼리에 여러 힌트를 지정할 수 있습니다.

```
-- Combine join and partitioning hints
SELECT /*+ BROADCAST(d), REPARTITION(8) */ e.name, d.dept_name
FROM employees e JOIN departments d ON e.dept_id = d.id;

-- Multiple join hints
SELECT /*+ BROADCAST(s), MERGE(d) */ *
FROM employees e
JOIN students s ON e.id = s.id
JOIN departments d ON e.dept_id = d.id;

-- Hints within separate hint blocks within the same query
SELECT /*+ REPARTITION(100) */ /*+ COALESCE(500) */ /*+ REPARTITION_BY_RANGE(3, c) */ * FROM t;
```

## 고려 사항 및 제한 사항
<a name="hints-usage-notes"></a>
+ 힌트는 명령이 아닌 최적화 제안입니다. 쿼리 최적화 프로그램은 리소스 제약 조건 또는 실행 조건에 따라 힌트를 무시할 수 있습니다.
+ 힌트는 CreateAnalysisTemplate 및 StartProtectedQuery APIs 모두에 대한 SQL 쿼리 문자열에 직접 포함됩니다.
+ 힌트는 SELECT 키워드 바로 뒤에 배치해야 합니다.
+ 명명된 파라미터는 힌트에서 지원되지 않으며 예외가 발생합니다.
+ REPARTITION amd REPARTITION\$1BY\$1RANGE 힌트의 열 이름은 입력 스키마에 있어야 합니다.
+ REBALANCE 힌트의 열 이름은 SELECT 출력 목록에 나타나야 합니다.
+ 숫자 파라미터는 1에서 2147483647 사이의 양의 정수여야 합니다. *1e1*과 같은 과학 표기법은 지원되지 않습니다.
+ 힌트는 차등 프라이버시 SQL 쿼리에서 지원되지 않습니다.
+ SQL 쿼리에 대한 힌트는 PySpark 작업에서 지원되지 않습니다. PySpark 작업에서 실행 계획에 대한 지시문을 제공하려면 데이터 프레임 API를 사용합니다. 자세한 내용은 [Apache Spark DataFrame API 문서를 참조하세요](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.hint.html).