Amazon Redshift Spectrum을 사용하여 외부 데이터 쿼리 - Amazon Redshift

Amazon Redshift Spectrum을 사용하여 외부 데이터 쿼리

Amazon Redshift Spectrum을 사용하면 데이터를 Amazon Redshift 테이블에 로드하지 않고도 Amazon S3의 파일에서 정형 및 비정형 데이터를 효율적으로 쿼리하고 가져올 수 있습니다. Redshift Spectrum 쿼리는 대량 병렬 처리를 채택해 큰 데이터 집합에 대해 매우 빠르게 실행됩니다. 대부분의 처리가 Redshift Spectrum 계층에서 이루어지며, 데이터가 대부분 Amazon S3에 그대로 남습니다. 또한 다수의 클러스터가 Amazon S3의 동일한 데이터 집합에 대해 동시에 쿼리를 실행할 수 있기 때문에 각 클러스터의 데이터를 일일이 복사할 필요가 없습니다.

Amazon Redshift Spectrum 개요

Amazon Redshift Spectrum은 클러스터와 독립적인 전용 Amazon Redshift 서버에 상주합니다. Amazon Redshift는 조건자 필터링 및 집계 같은 많은 컴퓨팅 집약적 작업을 Redshift Spectrum 계층까지 푸시합니다. 따라서 Redshift Spectrum 쿼리는 다른 쿼리보다 클러스터의 처리 용량을 훨씬 적게 사용합니다. Redshift Spectrum은 또 지능적으로 조정됩니다. Redshift Spectrum은 쿼리 요구에 기반하여 대량 병렬 처리를 활용하기 위해 수천 개의 인스턴스를 사용할 수 있습니다.

파일의 구조를 정의하고 외부 데이터 카탈로그에 테이블로 등록해 Redshift Spectrum 테이블을 만듭니다. 외부 데이터 카탈로그는 AWS Glue, Amazon Athena와 함께 제공되는 데이터 카탈로그 또는 자체 Apache Hive 메타스토어일 수 있습니다. 데이터 정의 언어(DDL) 명령을 사용하거나 외부 데이터 카탈로그에 연결된 다른 도구를 사용하여 Amazon Redshift에서 외부 테이블을 생성하고 관리할 수 있습니다. 외부 데이터 카탈로그의 변경 사항은 Amazon Redshift 클러스터에서 즉시 사용할 수 있습니다.

필요할 경우, 하나 이상의 열에서 외부 테이블을 파티셔닝할 수 있습니다. 외부 테이블의 일부로 파티션을 정의하면 성능을 개선할 수 있습니다. 개선이 가능한 이유는 쿼리를 위한 데이터가 포함되지 않은 파티션을 Amazon Redshift 쿼리 옵티마이저가 제거하기 때문입니다.

Redshift Spectrum 테이블이 정의된 후 다른 Amazon Redshift 테이블과 똑같이 테이블을 쿼리하고 조인할 수 있습니다. Redshift Spectrum은 외부 테이블에 대한 업데이트 작업을 지원하지 않습니다. Redshift Spectrum 테이블을 여러 Amazon Redshift 클러스터에 추가하여 같은 AWS 리전의 어느 클러스터에서나 Amazon S3에 있는 동일한 데이터를 쿼리할 수 있습니다. Amazon S3 데이터 파일을 업데이트하면 어느 Amazon Redshift 클러스터에서나 해당 데이터를 즉시 사용할 수 있습니다.

액세스하는 AWS Glue 데이터 카탈로그가 보안을 강화하기 위해 암호화될 수 있습니다. AWS Glue 카탈로그가 암호화되어 있는 경우 AWS Glue 카탈로그에 액세스하려면 AWS Glue에 AWS Key Management Service(AWS KMS) 키가 필요합니다. 일부 AWS 리전에서는 AWS Glue 카탈로그 암호화를 사용할 수 없습니다. 지원되는 AWS 리전 목록은 AWS Glue Developer GuideEncryption and Secure Access for AWS Glue 섹션을 참조하세요. AWS Glue Data Catalog 암호화에 대한 자세한 내용은 AWS Glue Developer GuideEncrypting Your AWS Glue Data Catalog 섹션을 참조하세요.

참고

PG_TABLE_DEF, STV_TBL_PERM, PG_CLASS 또는 information_schema와 같은 표준 Amazon Redshift 테이블에 사용하는 것과 동일한 리소스를 사용하여 Redshift Spectrum 테이블에 대한 세부 정보를 볼 수 없습니다. 비즈니스 인텔리전스 또는 분석 도구가 Redshift Spectrum 외부 테이블을 인식하지 못하는 경우 애플리케이션이 SVV_EXTERNAL_TABLESSVV_EXTERNAL_COLUMNS를 쿼리하도록 구성합니다.

Amazon Redshift Spectrum 리전

Redshift 스펙트럼은 리전별 설명서에 달리 명시되지 않는 한 Amazon Redshift Redshift를 사용할 수 있는 AWS 리전에서 사용할 수 있습니다. 상업용 리전에서의 AWS 리전 가용성은 Amazon Web Services 일반 참조Redshift API에 대한 서비스 엔드포인트를 참조하세요.

Amazon Redshift Spectrum 고려 사항

Amazon Redshift Spectrum을 사용할 때 다음을 고려하세요.

  • Amazon Redshift 클러스터와 Amazon S3 버킷이 동일한 AWS 리전에 있어야 합니다.

  • Redshift Spectrum은 대한 향상된 VPC 라우팅을 지원하지 않습니다. Amazon S3 데이터에 액세스하려면 추가 구성 단계를 수행해야 할 수 있습니다. 자세한 내용은 Amazon Redshift 관리 안내서의 Redshift Spectrum 및 향상된 VPC 라우팅을 참조하세요.

  • Redshift 스펙트럼은 Amazon S3 액세스 포인트 별칭을 지원합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서액세스 포인트에 버킷 스타일 별칭 사용을 참조하세요. 그러나 Redshift Spectrum은 Amazon S3 액세스 포인트 별칭이 있는 VPC를 지원하지 않습니다. 자세한 내용은 Amazon Redshift 관리 안내서의 Redshift Spectrum 및 향상된 VPC 라우팅을 참조하세요.

  • 외부 테이블에서는 업데이트 또는 삭제 작업을 수행할 수 없습니다. 지정된 스키마에 새 외부 테이블을 생성하기 위해 CREATE EXTERNAL TABLE을 사용할 수 있습니다. CREATE EXTERNAL TABLE에 대한 자세한 내용은 CREATE EXTERNAL TABLE 섹션을 참조하세요. 외부 카탈로그의 기존 외부 테이블에 SELECT 쿼리의 결과를 삽입하기 위해 INSERT(외부 테이블)를 사용할 수 있습니다. INSERT(외부 테이블)에 대한 자세한 내용은 INSERT(외부 테이블) 섹션을 참조하세요.

  • AWS Lake Formation에 대해 사용 설정된 AWS Glue Data Catalog를 사용하지 않는 한 외부 테이블에 대한 사용자 권한을 제어할 수 없습니다. 그 대신 외부 테이블에서 권한을 허용하고 취소할 수는 있습니다. AWS Lake Formation 작업에 대한 자세한 내용은 AWS Lake Formation과 함께 Redshift Spectrum 사용 섹션을 참조하세요.

  • Redshift Spectrum 쿼리를 실행하려면 데이터베이스 사용자가 데이터베이스에서 임시 테이블을 생성할 수 있는 권한을 보유해야 합니다. 다음 예에서는 spectrumdb 데이터베이스에 대한 임시 권한을 spectrumusers 사용자 그룹에 부여합니다.

    grant temp on database spectrumdb to group spectrumusers;

    자세한 내용은 GRANT 단원을 참조하십시오.

  • Athena Data Catalog 또는 AWS Glue Data Catalog를 메타데이터 스토어로 사용하는 경우 Amazon Redshift 관리 가이드할당량 및 제한 섹션을 참조하세요.

  • Redshift Spectrum은 Kerberos가 포함된 Amazon EMR을 지원하지 않습니다.