기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Glue Data Catalog 뷰 작업
EMR Serverless와 함께 사용할 수 있도록 AWS Glue 데이터 카탈로그에서 뷰를 생성하고 관리할 수 있습니다. 일반적으로 AWS Glue 데이터 카탈로그 뷰라고 합니다. 이러한 뷰는 여러 SQL 쿼리 엔진을 지원하므로 EMR Serverless Amazon Athena및 Amazon Redshift와 같은 다양한 AWS 서비스에서 동일한 뷰에 액세스할 수 있기 때문에 유용합니다.
데이터 카탈로그에서 보기를 생성하면에서 리소스 권한 부여 및 태그 기반 액세스 제어를 사용하여 액세스 권한을 AWS Lake Formation 부여할 수 있습니다. 이 액세스 제어 방법을 사용하면 보기를 생성할 때 참조한 테이블에 대한 추가 액세스를 구성하지 않아도 됩니다. 이러한 권한 부여 방법을 정의자 시맨틱이라고 하며 이러한 보기를 정의자 보기라고 합니다. Lake Formation의 액세스 제어에 대한 자세한 내용은 AWS Lake Formation 개발자 안내서의 데이터 카탈로그 리소스에 대한 권한 부여 및 취소를 참조하세요.
Data Catalog 보기는 다음 사용 사례에 유용합니다.
세분화된 액세스 제어 - 사용자에게 필요한 권한에 따라 데이터 액세스를 제한하는 보기를 생성할 수 있습니다. 예를 들어 데이터 카탈로그의 뷰를 사용하여 인사 관리(HR) 부서 소속이 아닌 직원은 개인 식별 정보(PII)를 보지 못하게 할 수 있습니다.
전체 보기 정의 - 데이터 카탈로그의 보기에 필터를 적용하면 데이터 카탈로그의 보기에서 사용할 수 있는 데이터 레코드가 항상 완전한지 확인할 수 있습니다.
보안 강화 - 보기를 생성하는 데 사용되는 쿼리 정의가 완전해야 합니다. 이 이점은 데이터 카탈로그의 뷰가 악의적인 액터의 SQL 명령에 덜 취약하다는 것을 의미합니다.
간단한 데이터 공유 - 데이터를 이동하지 않고 다른 AWS 계정과 데이터를 공유합니다. 자세한 내용은 Cross-account data sharing in Lake Formation을 참조하세요.
Data Catalog 뷰 생성
데이터 카탈로그 보기를 생성하는 방법에는 여러 가지가 있습니다. 여기에는 AWS CLI 또는 Spark SQL 사용이 포함됩니다. 다음은 몇 가지 예입니다.
다음은 데이터 카탈로그 보기를 생성하기 위한 구문을 보여줍니다. MULTI DIALECT
보기 유형을 기록해 둡니다. 이렇게 하면 데이터 카탈로그 보기가 다른 보기와 구별됩니다. SECURITY
조건자는 로 지정됩니다DEFINER
. 이는 DEFINER
의미 체계가 있는 데이터 카탈로그 보기를 나타냅니다.
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW [IF NOT EXISTS] view_name
[(column_name [COMMENT column_comment], ...) ]
[ COMMENT view_comment ]
[TBLPROPERTIES (property_name = property_value, ... )]
SECURITY DEFINER
AS query;
다음은 구문을 따르는 샘플 CREATE
문입니다.
CREATE PROTECTED MULTI DIALECT VIEW catalog_view
SECURITY DEFINER
AS
SELECT order_date, sum(totalprice) AS price
FROM source_table
GROUP BY order_date
또한 SQL을 사용하여 리소스를 실제로 생성하지 않고도 드라이 런 모드에서 뷰를 생성하여 뷰 생성을 테스트할 수 있습니다. 이 옵션을 사용하면 입력을 검증하는 "드라이 런"이 생성되고 검증이 성공하면 뷰를 나타내는 AWS Glue 테이블 객체의 JSON이 반환됩니다. 이 경우 실제 보기가 생성되지 않습니다.
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW
view_name
SECURITY DEFINER [ SHOW VIEW JSON ] ASview-sql
지원되는 보기 작업
다음 명령 조각은 Data Catalog 뷰를 사용하는 다양한 방법을 보여줍니다.
뷰 생성
데이터 카탈로그 보기를 생성합니다. 다음은 기존 테이블에서 뷰를 생성하는 방법을 보여주는 샘플입니다.
CREATE PROTECTED MULTI DIALECT VIEW catalog_view SECURITY DEFINER AS SELECT * FROM my_catalog.my_database.source_table
ALTER 보기
사용 가능한 구문:
ALTER VIEW view_name [FORCE] ADD DIALECT AS query
ALTER VIEW view_name [FORCE] UPDATE DIALECT AS query
ALTER VIEW view_name DROP DIALECT
FORCE ADD DIALECT
옵션을 사용하여 새 엔진 언어에 따라 스키마 및 하위 객체를 강제 업데이트할 수 있습니다. 다른 엔진 언어도 업데이트FORCE
하는 데를 사용하지 않으면 쿼리 오류가 발생할 수 있습니다. 다음은 샘플을 보여줍니다.ALTER VIEW catalog_view FORCE ADD DIALECT AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY orderdate;
다음은 방언을 업데이트하기 위해 보기를 변경하는 방법을 보여줍니다.
ALTER VIEW catalog_view UPDATE DIALECT AS SELECT count(*) FROM my_catalog.my_database.source_table;
설명 보기
뷰를 설명하는 데 사용할 수 있는 구문:
SHOW COLUMNS {FROM|IN} view_name [{FROM|IN} database_name]
- 사용자에게 뷰를 설명하는 데 필요한 AWS Glue 및 Lake Formation 권한이 있는 경우 열을 나열할 수 있습니다. 다음은 열을 표시하기 위한 몇 가지 샘플 명령을 보여줍니다.SHOW COLUMNS FROM my_database.source_table; SHOW COLUMNS IN my_database.source_table;
DESCRIBE view_name
- 사용자에게 뷰를 설명하는 데 필요한 AWS Glue 및 Lake Formation 권한이 있는 경우 메타데이터와 함께 뷰의 열을 나열할 수 있습니다.
드롭 뷰
사용 가능한 구문:
DROP VIEW [ IF EXISTS ] view_name
다음 샘플은 뷰를 삭제하기 전에 뷰가 존재하는지 테스트하는
DROP
문을 보여줍니다.DROP VIEW IF EXISTS catalog_view;
보기 생성 표시
SHOW CREATE VIEW view_name
- 지정된 뷰를 생성하는 SQL 문을 표시합니다. 다음은 데이터 카탈로그 보기 생성을 보여주는 샘플입니다.SHOW CREATE TABLE my_database.catalog_view; CREATE PROTECTED MULTI DIALECT VIEW my_catalog.my_database.catalog_view ( net_profit, customer_id, item_id, sold_date) TBLPROPERTIES ( 'transient_lastDdlTime' = '1736267222') SECURITY DEFINER AS SELECT * FROM my_database.store_sales_partitioned_lf WHERE customer_id IN (SELECT customer_id from source_table limit 10)
보기 표시
카탈로그의 모든 뷰를 나열합니다. 예를 들어 Spark 언어가 없는 일반 뷰, 다중 언어 뷰(MDV) 및 MDV가 있습니다. 사용 가능한 구문은 다음과 같습니다.
SHOW VIEWS [{ FROM | IN } database_name] [LIKE regex_pattern]
:다음은 뷰를 표시하는 샘플 명령을 보여줍니다.
SHOW VIEWS IN marketing_analytics LIKE 'catalog_view*';
데이터 카탈로그 뷰 생성 및 구성에 대한 자세한 내용은 AWS Lake Formation 개발자 안내서의 AWS Glue 데이터 카탈로그 뷰 구축을 참조하세요.
Data Catalog 뷰 쿼리
데이터 카탈로그 보기를 생성한 후 IAM 역할을 사용하여 보기를 쿼리할 수 있습니다. IAM 역할에는 데이터 카탈로그 보기에 대한 Lake Formation SELECT 권한이 있어야 합니다. 뷰에서 참조되는 기본 테이블에 대한 액세스 권한을 부여할 필요가 없습니다. 뷰를 쿼리하는 데 사용되는 IAM 역할은 EMR 애플리케이션의 런타임 역할이어야 합니다. Amazon EMR 단계, EMR Studio 및 SageMaker AI Studio의 런타임 역할을 사용하여 EMR Serverless에서 뷰에 액세스할 수 있습니다.
모든 설정을 마치면 보기를 쿼리할 수 있습니다. 예를 들어 EMR Studio에서 EMR Serverless 애플리케이션을 생성한 후 다음 쿼리를 실행하여 뷰에 액세스할 수 있습니다.
SELECT * from
my_database
.catalog_view
LIMIT 10;
고려 사항 및 제한 사항
Data Catalog 뷰를 생성할 때 다음이 적용됩니다.
Amazon EMR 7.6 이상에서만 데이터 카탈로그 뷰를 생성할 수 있습니다.
Data Catalog 뷰 정의자는 뷰에서 액세스하는 기본 기본 테이블에
SELECT
액세스할 수 있어야 합니다. 특정 기본 테이블에 정의자 역할에 Lake Formation 필터가 적용된 경우 Data Catalog 뷰 생성이 실패합니다.기본 테이블에는 Lake Formation의
IAMAllowedPrincipals
데이터 레이크 권한이 없어야 합니다. 이 권한이 있는 경우 다중 언어 뷰는 IAMAllowedPrincipals 권한이 없는 테이블만 참조라는 오류가 발생할 수 있습니다.테이블의 Amazon S3 위치를 Lake Formation 데이터 레이크 위치로 등록해야 합니다. 테이블이 등록되지 않은 경우 다중 언어 보기 오류는 Lake Formation 관리형 테이블만 참조할 수 있습니다. Lake Formation에 Amazon S3 위치를 등록하는 방법에 대한 자세한 내용은 AWS Lake Formation 개발자 안내서의 Amazon S3 위치 등록을 참조하세요.
PROTECTED
Data Catalog 보기만 생성할 수 있습니다.UNPROTECTED
보기는 지원되지 않습니다.데이터 카탈로그 보기 정의에서 다른 AWS 계정의 테이블을 참조할 수 없습니다. 또한 별도의 리전에 있는 동일한 계정의 테이블을 참조할 수 없습니다.
계정 또는 리전 간에 데이터를 공유하려면 Lake Formation 리소스 링크를 사용하여 전체 뷰를 계정 간 및 리전 간에 공유해야 합니다.
사용자 정의 함수(UDF)는 지원되지 않습니다.
Iceberg 테이블을 기반으로 뷰를 사용할 수 있습니다. 오픈 테이블 형식 Apache Hudi 및 Delta Lake도 지원됩니다.
Data Catalog 보기는 다른 보기를 참조할 수 없습니다.