Glue Data Catalog 뷰 구문
이 기능은 현재 프리뷰 버전이 출시 중이기 때문에 변경될 수도 있습니다. 자세한 내용을 알아보려면 AWS 서비스 약관 |
이 섹션에서는 AWS Glue Data Catalog 뷰를 생성하고 관리하기 위한 데이터 정의 언어(DDL) 명령을 설명합니다.
ALTER VIEW DIALECT
엔진 언어를 추가하거나 기존 엔진 언어를 업데이트 또는 삭제하여 Data Catalog 뷰를 업데이트할 수 있습니다. Lake Formation
Admin
과 Definer
(뷰를 생성한 사용자)만 Data Catalog 뷰에서 ALTER VIEW DIALECT
문을 사용할 수 있는 권한을 갖습니다.
구문
ALTER VIEW
name
[ FORCE ] [ ADD|UPDATE ] DIALECT AS query
ALTER VIEW
name
[ DROP ] DIALECT
- FORCE
-
FORCE
키워드는 뷰에서 충돌하는 엔진 언어 정보를 새 정의로 덮어쓰게 합니다.FORCE
키워드는 Data Catalog 뷰를 업데이트하여 기존 엔진 언어 간에 뷰 정의가 충돌하는 경우에 유용합니다. Data Catalog 뷰에 Athena 언어와 Amazon Redshift 언어가 모두 있고 업데이트로 인해 보기 정의에서 Amazon Redshift와 충돌이 발생한다고 가정해 보겠습니다. 이 경우FORCE
키워드를 사용하여 업데이트를 완료하고 Amazon Redshift 언어를 기한 경과로 표시할 수 있습니다. 기한 경과로 표시된 엔진이 뷰를 쿼리하면 쿼리가 실패합니다. 엔진에서 예외를 발생시켜 기한 경과 결과를 허용하지 않습니다. 이 문제를 해결하려면 뷰에서 기한 경과 언어를 업데이트합니다. - ADD
-
Data Catalog 뷰에 새 엔진 언어를 추가합니다. 지정된 엔진이 Data Catalog 뷰에 이미 존재해서는 안 됩니다.
- UPDATE
-
Data Catalog 뷰에 이미 존재하는 엔진 언어를 업데이트합니다.
- DROP
-
Data Catalog 뷰에서 기존 엔진 언어를 삭제합니다. Data Catalog 뷰에서 엔진을 삭제한 후에는 삭제된 엔진에서 Data Catalog 뷰를 쿼리할 수 없습니다. 뷰의 다른 엔진 언어는 여전히 뷰를 쿼리할 수 있습니다.
- DIALECT AS
-
엔진별 SQL 쿼리를 소개합니다.
예
ALTER VIEW orders_by_date FORCE ADD DIALECT AS SELECT orderdate, sum(totalprice) AS price FROM orders GROUP BY orderdate
ALTER VIEW orders_by_date FORCE UPDATE DIALECT AS SELECT orderdate, sum(totalprice) AS price FROM orders GROUP BY orderdate
ALTER VIEW orders_by_date DROP DIALECT
CREATE PROTECTED MULTI DIALECT VIEW
AWS Glue Data Catalog에서 Data Catalog 뷰를 생성합니다. Data Catalog 뷰는 Athena와 Amazon Redshift, Amazon EMR 등의 다른 SQL 엔진에서 원활하게 작동하는 단일 뷰 스키마입니다.
구문
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW
view_name
[ SECURITY DEFINER ] AS query
- PROTECTED
-
필수 키워드. 데이터 유출로부터 뷰를 보호하도록 지정합니다. Data Catalog 뷰는
PROTECTED
뷰로만 생성할 수 있습니다. - MULTI DIALECT
-
뷰가 다양한 쿼리 엔진의 SQL 언어의 지원하므로 해당 엔진에서 읽을 수 있도록 지정합니다.
- SECURITY DEFINER
-
이 뷰에 정의자 의미 체계가 적용되도록 지정합니다. 정의자 의미 체계란 기본 테이블에 대한 유효 읽기 권한이 실제 읽기를 수행하는 보안 주체가 아니라 뷰를 정의한 보안 주체 또는 역할에 속함을 의미합니다.
- OR REPLACE
-
다른 엔진의 SQL 언어가 뷰에 있는 경우 Data Catalog 뷰를 대체할 수 없습니다. 호출 엔진의 뷰에 SQL 언어만 있는 경우 뷰를 바꿀 수 있습니다.
예
다음 예제에서는 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
DESCRIBE
지정된 Data Catalog 뷰의 열 목록을 표시합니다. DESCRIBE
문은 Athena 뷰의 DESCRIBE
문과 유사합니다. Athena의 뷰와 달리 명령문의 출력은 Lake Formation 액세스 제어를 통해 제어됩니다. 따라서 이 쿼리의 출력은 뷰의 모든 열이 아니라 호출자가 액세스할 수 있는 열입니다.
구문
DESCRIBE [
db_name
.]view_name
예
DESCRIBE orders
DROP VIEW
호출 엔진 언어가 Data Catalog 뷰에 있는 경우에만 Data Catalog 뷰를 삭제합니다. 예를 들어 사용자가 Athena에서 DROP VIEW
를 호출하면 Athena의 언어가 뷰에 있는 경우에만 뷰가 삭제됩니다. 그렇지 않으면 작업이 실패합니다. Lake Formation 관리자와 뷰 정의자만 Data Catalog 뷰에서 DROP
VIEW
문을 사용할 수 있는 권한이 있습니다.
구문
DROP VIEW [ IF EXISTS ]
view_name
예
DROP VIEW orders_by_date
DROP FORCE VIEW IF EXISTS orders_by_date
뷰가 없는 경우 선택적 IF EXISTS
절이 오류가 억제되도록 합니다.
SHOW COLUMNS
지정된 단일 데이터 카탈로그 뷰의 열 이름만 표시합니다. SHOW
COLUMNS
문은 Athena 뷰의 SHOW COLUMNS
문과 유사합니다. Athena의 뷰와 달리 명령문의 출력은 Lake Formation 액세스 제어를 통해 제어됩니다. 따라서 이 쿼리의 출력은 뷰의 모든 열이 아니라 호출자가 액세스할 수 있는 열입니다.
구문
SHOW COLUMNS {FROM|IN}
database_name
.view_name
SHOW COLUMNS {FROM|IN}
view_name
[{FROM|IN}database_name
]
SHOW CREATE VIEW
Data Catalog 뷰를 생성한 SQL 구문을 표시합니다. 반환된 SQL은 Athena에서 사용되는 뷰 생성 구문을 보여줍니다. Lake Formation 관리자 및 뷰 정의자 보안 주체만 Data Catalog 뷰에서 SHOW CREATE VIEW
를 직접적으로 호출할 권한이 있습니다.
구문
SHOW CREATE VIEW
view_name
예
SHOW CREATE VIEW orders_by_date
SHOW VIEWS
데이터베이스에 있는 모든 뷰의 이름을 나열합니다. Athena 엔진 SQL 언어가 있는 데이터베이스의 모든 Data Catalog 뷰가 나열됩니다. 뷰에 Athena 엔진 언어가 없는 다른 Data Catalog 뷰는 필터링되어 제외됩니다.
구문
SHOW VIEWS [IN
database_name
] [LIKE 'regular_expression
']
예
SHOW VIEWS
SHOW VIEWS IN marketing_analytics LIKE 'orders*'