

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

# 캐시 테이블
<a name="sql-commands-cache-table"></a>

CACHE TABLE 명령은 기존 테이블의 데이터를 캐싱하거나 쿼리 결과가 포함된 새 테이블을 생성하고 캐싱합니다.

**참고**  
캐시된 데이터는 전체 쿼리에 대해 유지됩니다.

구문, 인수 및 일부 예제는 [Apache Spark SQL 참조](https://spark.apache.org/docs/latest/api/sql/)에서 가져옵니다.

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

CACHE TABLE 명령은 세 가지 구문 패턴을 지원합니다.

AS 사용(괄호 제외): 쿼리 결과를 기반으로 새 테이블을 생성하고 캐시합니다.

```
CACHE TABLE cache_table_identifier AS query;
```

AS 및 괄호 사용: 함수는 첫 번째 구문과 비슷하지만 괄호를 사용하여 쿼리를 명시적으로 그룹화합니다.

```
CACHE TABLE cache_table_identifier AS ( query );
```

AS 없음: SELECT 문을 사용하여 캐싱할 행을 필터링하여 기존 테이블을 캐싱합니다.

```
CACHE TABLE cache_table_identifier query; 
```

위치:
+ 모든 문은 세미콜론(;)으로 끝나야 합니다.
+ `query`는 일반적으로 SELECT 문입니다.
+ 쿼리 주위의 괄호는 AS에서 선택 사항입니다.
+ AS 키워드는 선택 사항입니다.

## 파라미터
<a name="CACHE-TABLE-parameters"></a>

 *cache\$1table\$1identifier*   
캐시된 테이블의 이름입니다. 선택적 데이터베이스 이름 한정자를 포함할 수 있습니다.

 *AS*   
쿼리 결과에서 새 테이블을 생성하고 캐싱할 때 사용되는 키워드입니다.

*query*  
캐시할 데이터를 정의하는 SELECT 문 또는 기타 쿼리입니다.

## 예제
<a name="CACHE-TABLE-examples"></a>

다음 예제에서는 캐시된 테이블이 전체 쿼리에 대해 유지됩니다. 캐싱 후 *cache\$1table\$1identifier*를 참조하는 후속 쿼리는 *sourceTable*에서 다시 계산하거나 읽는 대신 캐시된 버전에서 읽습니다. 이렇게 하면 자주 액세스하는 데이터의 쿼리 성능이 향상될 수 있습니다.

### 쿼리 결과에서 필터링된 테이블 생성 및 캐시
<a name="create-cache-filterd-table"></a>

첫 번째 예제에서는 쿼리 결과에서 새 테이블을 생성하고 캐싱하는 방법을 보여줍니다. 이 명령은 `SELECT` 문 주위에 괄호 없이 `AS` 키워드를 사용합니다. 상태가 '인 `cache_table_identifier`''의 행만 포함하는 '`sourceTable`'라는 새 테이블을 생성합니다`active'`. 쿼리를 실행하고, 결과를 새 테이블에 저장하고, 새 테이블의 콘텐츠를 캐싱합니다. 원래 '`sourceTable`'는 변경되지 않으며 캐시된 데이터를 사용하려면 후속 쿼리가 '`cache_table_identifier`'를 참조해야 합니다.

```
CACHE TABLE cache_table_identifier AS
    SELECT * FROM sourceTable 
    WHERE status = 'active';
```

### 괄호로 묶인 SELECT 문을 사용하여 쿼리 결과 캐시
<a name="cache-query-results"></a>

두 번째 예제에서는 `SELECT` 문 주위에 괄호를 사용하여 쿼리 결과를 지정된 이름(`cache_table_identifier`)의 새 테이블로 캐싱하는 방법을 보여줍니다. 이 명령은 상태가 '인 '`cache_table_identifier`'의 행만 포함하는 ''이라는 새 테이블`sourceTable`을 생성합니다`active'`. 쿼리를 실행하고, 결과를 새 테이블에 저장하고, 새 테이블의 콘텐츠를 캐싱합니다. 원래 '`sourceTable`'는 변경되지 않습니다. 후속 쿼리는 캐시된 데이터를 사용하려면 '`cache_table_identifier`'를 참조해야 합니다.

```
CACHE TABLE cache_table_identifier AS (
    SELECT * FROM sourceTable 
    WHERE status = 'active'
);
```

### 필터 조건으로 기존 테이블 캐시
<a name="cache-existing-table"></a>

세 번째 예제에서는 다른 구문을 사용하여 기존 테이블을 캐싱하는 방법을 보여줍니다. '`AS`' 키워드와 괄호를 생략하는이 구문은 일반적으로 새 테이블을 생성하는 대신 '`cache_table_identifier`'이라는 기존 테이블에서 지정된 행을 캐싱합니다. `SELECT` 문은 캐시할 행을 결정하는 필터 역할을 합니다.

**참고**  
이 구문의 정확한 동작은 데이터베이스 시스템에 따라 다릅니다. 항상 특정 AWS 서비스에 대해 올바른 구문을 확인합니다.

```
CACHE TABLE cache_table_identifier 
SELECT * FROM sourceTable 
WHERE status = 'active';
```