CREATE VIEW 및 CREATE DIALECT VIEW - Amazon Athena

CREATE VIEW 및 CREATE DIALECT VIEW

뷰는 향후 쿼리에서 참조할 수 있는 논리적 테이블입니다. 뷰에는 어떤 데이터도 포함되어 있지 않으며 데이터를 작성하지 않습니다. 대신에 뷰에서 지정된 쿼리는 다른 쿼리로 이 뷰를 참조할 때마다 실행됩니다.

  • CREATE VIEW는 지정된 SELECT 쿼리에서 Athena 뷰를 생성합니다. Athena 뷰는 Athena 내에서 작동합니다. Athena 뷰에 대한 자세한 내용은 뷰 작업 섹션을 참조하세요.

  • CREATE PROTECTED MULTI DIALECT VIEW는 AWS Glue Data Catalog에서 AWS Glue Data Catalog 뷰를 생성합니다. AWS Glue Data Catalog 뷰는 Amazon Athena, Amazon Redshift 등의 AWS 서비스 간에 단일 공통 뷰를 제공합니다. AWS Glue Data Catalog 뷰에 대한 자세한 내용은 Athena에서 Data Catalog 뷰 사용 섹션을 참조하세요.

CREATE VIEW

Athena에서 사용할 뷰를 생성합니다.

시놉시스

CREATE [ OR REPLACE ] VIEW view_name AS query

선택적 OR REPLACE 절을 사용하여 기존 뷰를 바꿔 업데이트할 수 있습니다. 자세한 내용은 뷰 생성 단원을 참조하십시오.

예시

테이블 orders에서 뷰 test를 만들려면 다음과 유사한 쿼리를 사용합니다.

CREATE VIEW test AS SELECT orderkey, orderstatus, totalprice / 2 AS half FROM orders;

테이블 orders에서 뷰 orders_by_date를 만들려면 다음 쿼리를 사용합니다.

CREATE VIEW orders_by_date AS SELECT orderdate, sum(totalprice) AS price FROM orders GROUP BY orderdate;

기존 뷰를 업데이트하려면 다음과 유사한 예제를 사용합니다.

CREATE OR REPLACE VIEW test AS SELECT orderkey, orderstatus, totalprice / 4 AS quarter FROM orders;

Athena 뷰를 사용하는 자세한 방법은 뷰 작업 섹션을 참조하세요.

CREATE PROTECTED MULTI DIALECT VIEW

AWS Glue Data Catalog에서 AWS Glue Data Catalog 뷰를 생성합니다. Data Catalog 뷰는 Athena와 Amazon Redshift, Amazon EMR 등의 다른 SQL 엔진에서 작동하는 단일 뷰 스키마입니다.

구문

CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW view_name SECURITY DEFINER [ SHOW VIEW JSON ] AS query
OR REPLACE

(선택 사항) 기존 뷰를 대체하여 업데이트합니다. 다른 엔진의 SQL 언어가 뷰에 있는 경우 Data Catalog 뷰를 대체할 수 없습니다. 호출 엔진의 뷰에 SQL 언어만 있는 경우 뷰를 바꿀 수 있습니다.

PROTECTED

필수 키워드. 데이터 유출로부터 뷰를 보호하도록 지정합니다. Data Catalog 뷰는 PROTECTED 뷰로만 생성할 수 있습니다.

MULTI DIALECT

뷰가 다양한 쿼리 엔진의 SQL 언어의 지원하므로 해당 엔진에서 읽을 수 있도록 지정합니다.

SECURITY DEFINER

이 뷰에 정의자 의미 체계가 적용되도록 지정합니다. 정의자 의미 체계란 기본 테이블에 대한 유효 읽기 권한이 실제 읽기를 수행하는 보안 주체가 아니라 뷰를 정의한 보안 주체 또는 역할에 속함을 의미합니다.

SHOW VIEW JSON

(선택 사항) 실제로 뷰를 생성하지 않고 Data Catalog 뷰 사양의 JSON을 반환합니다. 이 “테스트 실행” 옵션은 뷰에 대한 SQL을 검증하고 AWS Glue에서 사용할 테이블 메타데이터를 반환하려는 경우에 유용합니다.

다음 예제에서는 orders 테이블의 쿼리를 기반으로 orders_by_date Data Catalog 뷰를 생성합니다.

CREATE PROTECTED MULTI DIALECT VIEW orders_by_date SECURITY DEFINER AS SELECT orderdate, sum(totalprice) AS price FROM orders WHERE order_city = 'SEATTLE' GROUP BY orderdate

AWS Glue Data Catalog 뷰를 사용하는 자세한 방법은 Athena에서 Data Catalog 뷰 사용 섹션을 참조하세요.