기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
캐시 테이블
CACHE TABLE 명령은 기존 테이블의 데이터를 캐싱하거나 쿼리 결과가 포함된 새 테이블을 생성하고 캐싱합니다.
참고
캐시된 데이터는 전체 쿼리에 대해 유지됩니다.
구문, 인수 및 일부 예제는 Apache Spark SQL 참조
구문
CACHE TABLE 명령은 세 가지 구문 패턴을 지원합니다.
AS 사용(괄호 제외): 쿼리 결과를 기반으로 새 테이블을 생성하고 캐싱합니다.
CACHE TABLEcache_table_identifierASquery;
AS 및 괄호 사용: 첫 번째 구문과 유사하게 작동하지만 괄호를 사용하여 쿼리를 명시적으로 그룹화합니다.
CACHE TABLEcache_table_identifierAS (query);
AS 사용 안 함: SELECT 문을 사용하여 캐싱할 행을 필터링하여 기존 테이블을 캐싱합니다.
CACHE TABLEcache_table_identifierquery;
위치:
-
모든 문은 세미콜론(;)으로 끝나야 합니다.
-
query는 일반적으로 SELECT 문입니다. -
쿼리 주위의 괄호는 AS에서 선택 사항입니다.
-
AS 키워드는 선택 사항입니다.
파라미터
- cache_table_identifier
-
캐시된 테이블의 이름입니다. 선택적 데이터베이스 이름 한정자를 포함할 수 있습니다.
- AS
-
쿼리 결과에서 새 테이블을 생성하고 캐싱할 때 사용되는 키워드입니다.
- query
-
캐시할 데이터를 정의하는 SELECT 문 또는 기타 쿼리입니다.
예시
다음 예제에서는 캐시된 테이블이 전체 쿼리에 대해 유지됩니다. 캐싱 후 cache_table_identifier를 참조하는 후속 쿼리는 sourceTable을 다시 계산하거나 읽는 대신 캐시된 버전에서 읽습니다. 이렇게 하면 자주 액세스하는 데이터의 쿼리 성능이 향상될 수 있습니다.
쿼리 결과에서 필터링된 테이블 생성 및 캐시
첫 번째 예제에서는 쿼리 결과에서 새 테이블을 생성하고 캐싱하는 방법을 보여줍니다. 이 명령은 SELECT 문 주위에 괄호 없이 AS 키워드를 사용합니다. 상태가 '인 'cache_table_identifier'의 행만 포함하는 'sourceTable'라는 새 테이블을 생성합니다active'. 쿼리를 실행하고, 결과를 새 테이블에 저장하고, 새 테이블의 콘텐츠를 캐싱합니다. 원래 'sourceTable'는 변경되지 않으며 캐시된 데이터를 사용하려면 후속 쿼리가 'cache_table_identifier'를 참조해야 합니다.
CACHE TABLEcache_table_identifierAS SELECT * FROMsourceTableWHERE status = 'active';
괄호로 묶인 SELECT 문을 사용하여 쿼리 결과 캐시
두 번째 예제에서는 SELECT 문 주위에 괄호를 사용하여 쿼리 결과를 지정된 이름(cache_table_identifier)의 새 테이블로 캐싱하는 방법을 보여줍니다. 이 명령은 상태가 '인 'cache_table_identifier'의 행만 포함하는 'sourceTable'이라는 새 테이블을 생성합니다active'. 쿼리를 실행하고, 결과를 새 테이블에 저장하고, 새 테이블의 콘텐츠를 캐싱합니다. 원래 'sourceTable'는 변경되지 않습니다. 후속 쿼리는 캐시된 데이터를 사용하려면 'cache_table_identifier'를 참조해야 합니다.
CACHE TABLEcache_table_identifierAS ( SELECT * FROMsourceTableWHERE status = 'active' );
필터 조건으로 기존 테이블 캐시
세 번째 예제에서는 다른 구문을 사용하여 기존 테이블을 캐싱하는 방법을 보여줍니다. 'AS' 키워드와 괄호를 생략하는이 구문은 일반적으로 새 테이블을 생성하는 대신 'cache_table_identifier'이라는 기존 테이블에서 지정된 행을 캐싱합니다. SELECT 문은 캐시할 행을 결정하는 필터 역할을 합니다.
참고
이 구문의 정확한 동작은 데이터베이스 시스템에 따라 다릅니다. 항상 특정 AWS 서비스에 대해 올바른 구문을 확인합니다.
CACHE TABLEcache_table_identifierSELECT * FROMsourceTableWHERE status = 'active';