뷰 작업
Amazon Athena의 뷰는 물리적 테이블이 아니라 논리적 테이블입니다. 뷰를 정의하는 쿼리는 쿼리에서 해당 뷰가 참조될 때마다 실행됩니다. SELECT
쿼리에서 뷰를 생성한 후 향후 쿼리에 이 뷰를 참조할 수 있습니다.
Athena에서는 Athena 뷰와 AWS Glue Data Catalog 뷰 두 가지 종류의 뷰를 사용할 수 있습니다.
Athena 뷰를 사용해야 하는 경우
Athena 뷰를 생성하여 다음을 수행할 수 있습니다.
-
데이터 하위 집합 쿼리 - 예를 들어 원본 테이블에서 열 하위 집합이 있는 뷰를 생성하여 데이터 쿼리를 단순화할 수 있습니다.
-
테이블 결합 - 뷰를 사용하여 여러 테이블을 하나의 쿼리로 결합할 수 있습니다. 테이블이 여러 개 있고
UNION ALL
로 테이블을 결합하려는 경우 해당 표현식으로 뷰를 생성하여 결합된 테이블에 대한 쿼리를 간소화할 수 있습니다. -
복잡성 숨기기 - 기존 기본 쿼리의 복잡성을 숨기고 사용자의 쿼리 실행을 단순화합니다. 기본 쿼리에는 보통 쿼리 이해 및 디버깅을 어렵게 하는 테이블 사이의 조인, 열 목록의 표현식, 여러 SQL 구문이 포함됩니다. 복잡성을 숨기고 쿼리를 간소화하는 뷰를 생성할 수 있습니다.
-
쿼리 최적화 - 뷰를 사용하면 여러 최적화 기술을 실험하여 최적화된 쿼리를 생성할 수 있습니다. 예를 들어 최고의 성능을 입증하는
WHERE
조건,JOIN
명령 또는 여러 표현식의 조합을 찾은 경우, 이러한 절과 표현식을 사용하여 뷰를 생성할 수 있습니다. 그러면 애플리케이션이 이 뷰에 대해 비교적 간단한 쿼리를 만들 수 있습니다. 원래 쿼리를 최적화할 더 좋은 방법을 나중에 찾은 경우, 뷰를 다시 생성할 때 모든 애플리케이션이 최적화된 기본 쿼리의 이점을 즉시 활용합니다. -
기본 이름 숨기기 - 뷰를 사용하면 기본 테이블 및 열 이름이 변경된 경우 그러한 이름을 숨기고 유지 관리 문제를 최소화할 수 있습니다. 이름이 변경되면 새 이름을 사용하여 뷰를 다시 생성하면 됩니다. 테이블을 직접 사용하는 대신 뷰를 사용하는 모든 쿼리는 아무런 변경 없이 계속 실행됩니다.
자세한 내용은 Athena 뷰 작업 단원을 참조하십시오.
AWS Glue Data Catalog 뷰를 사용해야 하는 경우
Amazon Athena, Amazon Redshift 등의 AWS 서비스 전반에 걸쳐 단일 공통 뷰를 원하는 경우 AWS Glue Data Catalog 뷰를 사용합니다. Data Catalog 뷰에서 액세스 권한은 뷰를 쿼리하는 사용자 대신 뷰를 만든 사용자가 정의합니다. 이러한 권한 부여 방법을 정의자 의미 체계라고 합니다.
다음은 Data Catalog 뷰를 사용할 수 있는 방법을 보여주는 사용 사례입니다.
-
액세스 제어 강화 - 사용자에게 필요한 권한 수준에 따라 데이터 액세스를 제한하는 뷰를 생성합니다. 예를 들어 Data Catalog 뷰를 사용하여 인사 관리(HR) 부서 소속이 아닌 직원은 개인 식별 정보를 보지 못하도록 할 수 있습니다.
-
완전한 기록 보장 - Data Catalog 뷰에 특정 필터를 적용하여 Data Catalog 뷰의 데이터 레코드가 항상 완전한지 확인할 수 있습니다.
-
보안 강화 - Data Catalog 뷰에서 뷰를 생성하려면 뷰를 생성하는 쿼리 정의가 그대로 유지되어야 합니다. 이렇게 하면 Data Catalog 뷰가 악의적인 행위자의 SQL 명령에 덜 취약해집니다.
-
기본 테이블에 대한 액세스 방지 - 정의자 의미 체계를 통해 사용자는 기본 테이블을 사용하지 않으면서 뷰에 액세스할 수 있습니다. 뷰를 정의하는 사용자에게만 테이블에 대한 액세스 권한이 필요합니다.
Data Catalog 뷰 정의는 AWS Glue Data Catalog에 저장됩니다. 즉, AWS Lake Formation을 사용하여 리소스 부여, 열 부여 또는 태그 기반 액세스 제어를 통해 액세스 권한을 부여할 수 있습니다. Lake Formation에서 액세스 권한 부여 및 취소에 대한 자세한 내용은 AWS Lake Formation 개발자 안내서의 Granting and revoking permissions on Data Catalog resources를 참조하십시오.
자세한 내용은 Athena에서 Data Catalog 뷰 사용 단원을 참조하십시오.