쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Glue Data Catalog 뷰 작업 - Amazon EMR

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

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

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 사용이 포함됩니다. 다음은 몇 가지 예입니다.

Using 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 ] AS view-sql
Using the AWS CLI
참고

CLI 명령을 사용하면 뷰를 생성하는 데 사용되는 SQL이 구문 분석되지 않습니다. 이로 인해 보기가 생성되지만 쿼리가 성공하지 못하는 경우가 발생할 수 있습니다. 뷰를 생성하기 전에 SQL 구문을 테스트해야 합니다.

다음 CLI 명령을 사용하여 뷰를 생성합니다.

aws glue create-table --cli-input-json '{ "DatabaseName": "database", "TableInput": { "Name": "view", "StorageDescriptor": { "Columns": [ { "Name": "col1", "Type": "data-type" }, ... { "Name": "colN", "Type": "data-type" } ], "SerdeInfo": {} }, "ViewDefinition": { "SubObjects": [ "arn:aws:glue:aws-region:aws-account-id:table/database/referenced-table1", ... "arn:aws:glue:aws-region:aws-account-id:table/database/referenced-tableN", ], "IsProtected": true, "Representations": [ { "Dialect": "SPARK", "DialectVersion": "1.0", "ViewOriginalText": "Spark-SQL", "ViewExpandedText": "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 ] AS view-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 보기는 다른 보기를 참조할 수 없습니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.