Amazon Redshift는 2025년 11월 1일부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. Python UDF를 사용하려면 이 날짜 이전에 UDF를 생성하세요. 기존 Python UDF는 정상적으로 계속 작동합니다. 자세한 내용은 블로그 게시물
AWS Glue Data Catalog 뷰
이 주제에서는 AWS Glue Data Catalog에서 뷰를 만드는 방법을 설명합니다. 데이터 카탈로그의 뷰를 사용하여 동일한 스키마로 다양한 데이터 소스의 데이터에 액세스할 수 있습니다.
데이터 카탈로그에서 뷰를 생성하면 Amazon Athena 및 Amazon EMR Spark와 같은 엔진 전반에서 사용할 단일 공통 뷰 스키마와 메타데이터 객체를 만들 수 있습니다. 이렇게 하면 데이터 레이크와 데이터 웨어하우스 전반에서 사용 사례에 맞게 동일한 뷰를 사용할 수 있습니다. 데이터 카탈로그의 뷰는 정의자 뷰로 범주화된다는 점에서 특별합니다. 즉, 뷰를 쿼리하는 사용자가 아니라 뷰를 생성한 사용자가 액세스 권한을 정의합니다. 다음은 데이터 카탈로그에서 뷰를 만들 때의 사용 사례와 이점입니다.
-
사용자에게 필요한 권한에 따라 데이터 액세스를 제한하는 뷰를 만듭니다. 예를 들어 데이터 카탈로그의 뷰를 사용하여 인사 관리(HR) 부서 소속이 아닌 직원은 개인 식별 정보(PII)를 보지 못하게 할 수 있습니다.
-
사용자가 불완전한 레코드에 액세스할 수 없게 합니다. 데이터 카탈로그의 뷰에 특정 필터를 적용하여 데이터 카탈로그의 뷰에 있는 데이터 레코드가 항상 완전한지 확인할 수 있습니다.
-
데이터 카탈로그 뷰에는 뷰를 만드는 데 사용된 쿼리 정의가 완료되어야 뷰를 만들 수 있다는 보안상의 이점이 있습니다. 이러한 보안상의 이점은 데이터 카탈로그의 뷰가 악의적인 사용자의 SQL 명령에 영향을 받지 않는다는 것을 의미합니다.
-
데이터 카탈로그의 뷰는 일반 뷰와 동일한 이점을 지원합니다. 예를 들어 사용자에게 기본 테이블에 대한 사용 권한을 제공하지 않고도 뷰 액세스는 허용할 수 있습니다.
데이터 카탈로그에서 뷰를 만들려면 Spectrum 외부 테이블, Lake Formation에서 관리하는 데이터 공유 또는 Apache Iceberg 테이블이 있어야 합니다.
데이터 카탈로그 뷰의 정의는 AWS Glue Data Catalog에 저장됩니다. AWS Lake Formation을 사용하여 리소스 부여, 열 부여 또는 태그 기반 액세스 제어를 통해 액세스 권한을 부여할 수 있습니다. Lake Formation에서 액세스 권한 부여 및 취소에 대한 자세한 내용은 데이터 카탈로그 리소스에 대한 권한 부여 및 취소를 참조하세요.
Amazon Redshift를 사용하여 이러한 AWS Glue Data Catalog 뷰를 참조하는 쿼리를 실행하는 경우, Amazon Redshift는 해당 쿼리에 대한 메타데이터를 로깅할 때 특정 시스템 테이블 및 뷰 열의 필드를 자동으로 마스킹합니다. 자세한 내용은 Amazon Redshift 관리 안내서의 보안 로깅을 참조하세요.
사전 조건
데이터 카탈로그에서 뷰를 생성하기 전에 다음 사전 조건을 충족해야 합니다.
IAM 역할에 다음과 같은 신뢰 정책이 있어야 합니다.
-
또한 다음 역할 전달 정책이 필요합니다.
마지막으로, 다음 권한이 필요합니다.
Glue:GetDatabaseGlue:GetDatabasesGlue:CreateTableGlue:GetTableGlue:UpdateTableGlue:DeleteTableGlue:GetTablesGlue:SearchTablesGlue:BatchGetPartitionGlue:GetPartitionsGlue:GetPartitionGlue:GetTableVersionGlue:GetTableVersions
종합 예제
먼저 데이터 카탈로그 데이터베이스를 기반으로 외부 스키마를 만드세요.
CREATE EXTERNAL SCHEMA IF NOT EXISTS external_schema FROM DATA CATALOG DATABASE 'external_data_catalog_db' IAM_ROLE 'arn:aws:iam::123456789012:role/sample-role';
이제 데이터 카탈로그 뷰를 만들 수 있습니다.
CREATE EXTERNAL PROTECTED VIEW external_schema.remote_view AS SELECT * FROM external_schema.remote_table;
그런 다음 뷰 쿼리를 시작할 수 있습니다.
SELECT * FROM external_schema.remote_view;
데이터 카탈로그의 뷰와 관련된 SQL 명령에 대한 자세한 내용은 CREATE EXTERNAL VIEW, ALTER EXTERNAL VIEW, DROP EXTERNAL VIEW를 참조하세요.
고려 사항 및 제한
다음은 데이터 카탈로그에서 생성된 뷰에 적용되는 고려 사항과 제한 사항입니다.
AWS Glue Data Catalog 보기는 RA3 프로비저닝 클러스터 또는 Redshift Serverless 작업 그룹에서만 지원됩니다.
다른 뷰를 기반으로 하는 데이터 카탈로그 뷰는 만들 수 없습니다.
데이터 카탈로그 뷰에는 기본 테이블이 10개만 허용됩니다.
뷰 정의자는 기본 테이블에 대한 모든
SELECT GRANTABLE권한을 가지고 있어야 합니다.뷰에는 Lake Formation 객체와 내장 기능만 포함할 수 있습니다. 다음과 같은 객체는 뷰 안에 넣을 수 없습니다.
시스템 테이블
사용자 정의 함수(UDF)
Lake Formation 관리형 데이터 공유에 포함되지 않은 Redshift 테이블, 뷰, 구체화된 뷰, 지연 바인딩 뷰
뷰에는 중첩된 Redshift Spectrum 테이블을 포함할 수 없습니다.
AWS Glue를 통한 뷰의 기본 객체 표현은 뷰와 동일한 AWS 계정 및 리전에 있어야 합니다.