AWS Glue Data Catalog 쿼리 - Amazon Redshift

AWS Glue Data Catalog 쿼리

쿼리 편집기 v2를 사용하여 AWS Glue Data Catalog에 카탈로그화된 데이터를 쿼리할 수 있습니다. 기본적으로 AWS Glue Data Catalog는 쿼리 편집기 v2 데이터베이스에 awsdatacatalog라는 이름으로 나열됩니다. 일부 Amazon Redshift AWS 리전에서는 AWS Glue Data Catalog 쿼리를 사용할 수 없습니다. SHOW 명령을 사용하여 이 기능을 사용할 수 있는지 확인하세요. AWS Glue에 대한 자세한 내용은 AWS Glue 개발자 안내서AWS Glue란 무엇입니까?를 참조하세요.

참고

AWS Glue Data Catalog 쿼리는 Amazon Redshift RA3 노드 유형 클러스터와 Amazon Redshift Serverless에서만 지원됩니다.

다음 SQL 명령을 사용하여 데이터 웨어하우스를 구성하고 카탈로그화된 AWS Glue 데이터베이스 객체를 볼 수 있습니다.

  • SHOW - 현재 연결된 데이터 웨어하우스에 대해 awsdatacatalog가 마운트되었는지 여부를 표시합니다. 예를 들어 data_catalog_auto_mount 파라미터 값을 표시하려면 다음을 실행합니다.

    SHOW data_catalog_auto_mount;

    자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내에서 SHOW를 참조하세요.

  • ALTER SYSTEM - data_catalog_auto_mount의 시스템 수준 구성을 변경합니다. 예를 들어 data_catalog_auto_mount 파라미터 값을 on으로 변경하려면 다음을 실행합니다.

    ALTER SYSTEM SET data_catalog_auto_mount = on;

    변경 사항은 프로비저닝된 클러스터가 재부팅되거나 서버리스 작업 그룹이 자동으로 일시 중지되었다가 다시 시작될 때 적용됩니다. 자세한 내용은 Amazon Redshift 데이터베이스 개발자 가이드에서 시스템 변경을 참조하세요.

  • SHOW SCHEMAS - 스키마 목록을 표시합니다. awsdatacatalog라는 데이터베이스의 스키마는 AWS Glue Data Catalog에 카탈로그화된 AWS Glue를 나타냅니다. 예를 들어 이러한 스키마를 표시하려면 다음을 실행합니다.

    SHOW SCHEMAS FROM DATABASE awsdatacatalog;

    자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내에서 SHOW SCHEMAS를 참조하세요.

  • SHOW TABLES - 스키마에 있는 테이블 목록을 표시합니다. 예를 들어 myglue 스키마에 있는 awsdatacatalog라는 이름의 AWS Glue Data Catalog 데이터베이스에 있는 테이블을 표시하려면 다음을 실행합니다.

    SHOW TABLES FROM SCHEMA awsdatacatalog.myschema;

    자세한 내용은 Amazon Redshift Database 개발자 안내서의 SHOW TABLES를 참조하세요.

  • SHOW COLUMNS - 테이블의 열 목록을 표시합니다. 예를 들어 myglue 스키마 및 mytable 테이블에 있는awsdatacatalog라는 이름의 AWS Glue Data Catalog 데이터베이스에 있는 테이블을 표시하려면 다음을 실행합니다.

    SHOW COLUMNS FROM TABLE awsdatacatalog.myglue.mytable;

    자세한 내용을 알아보려면 Amazon Redshift 데이터베이스 개발자 안내서의 SHOW COLUMNS를 참조하세요.

IAM 사용자 또는 역할에 AWS Glue Data Catalog를 쿼리할 권한을 부여하려면 다음 단계를 따르세요.
  1. 트리 뷰 창에서 데이터베이스 사용자 이름 및 암호 인증 방법을 사용하여 프로비저닝된 클러스터나 서버리 작업 그룹에 있는 최초 데이터베이스에 연결합니다. 예를 들어 클러스터 또는 작업 그룹을 만들 때 사용한 관리자 사용자 및 암호를 사용하여 dev 데이터베이스에 연결합니다.

  2. 편집기 탭에서 다음 SQL 문을 실행하여 IAM 사용자에게 AWS Glue Data Catalog 액세스 권한을 부여합니다.

    GRANT USAGE ON DATABASE awsdatacatalog to "IAM:myIAMUser"

    여기서 IAM:myIAMUser는 AWS Glue Data Catalog에 대한 사용 권한을 부여할 IAM 사용자입니다. IAM 역할에 대한 IAMR:myIAMRole에 사용 권한을 부여하는 방법도 있습니다.

  3. 트리 뷰 창에서 이전에 만든 클러스터 또는 작업 그룹에 대한 연결을 편집하거나 삭제합니다. 다음 방법 중 하나를 사용하여 클러스터 또는 작업 그룹에 연결합니다.

    • 클러스터에서 awsdatacatalog 데이터베이스에 연결하려면, IAM ID를 사용하는 임시 보안 인증 인증 방법을 사용해야 합니다. 이 인증 방법에 대한 자세한 내용은 Amazon Redshift 데이터베이스에 연결 단원을 참조하세요. 쿼리 편집기 v2 관리자가 연결 창에 이 인증 방법을 표시하도록 계정의 계정 설정을 구성해야 할 수 있습니다.

    • 미리 보기 작업 그룹에서 awsdatacatalog 데이터베이스에 연결하려면 페더레이션 사용자 인증 방법을 사용해야 합니다. 이 인증 방법에 대한 자세한 내용은 Amazon Redshift 데이터베이스에 연결 단원을 참조하세요.

  4. 부여된 권한이 있다면 IAM ID를 사용하여 AWS Glue Data Catalog를 상대로 SQL을 실행할 수 있습니다.

연결한 후에는 쿼리 편집기 v2를 사용하여 AWS Glue Data Catalog에 카탈로그화된 데이터를 쿼리할 수 있습니다. 쿼리 편집기 v2 트리 뷰 창에서 클러스터 또는 작업 그룹과 awsdatacatalog 데이터베이스를 선택합니다. 편집기나 노트북 창에서 올바른 클러스터 또는 작업 그룹이 선택되어 있는지 확인합니다. 선택한 데이터베이스는 최초 Amazon Redshift 데이터베이스(예: dev)여야 합니다. 쿼리 작성에 대한 자세한 내용은 쿼리 작성 및 실행노트북 작성 및 실행 단원을 참조하세요. awsdatacatalog라는 이름이 지정된 데이터베이스는 계정의 외부 Data Catalog 데이터베이스를 참조하도록 예약되어 있습니다. awsdatacatalog 데이터베이스에 대한 쿼리는 읽기 전용일 수만 있습니다. SELECT 문에서 테이블을 참조하려면 세 부분으로 구성된 표기법을 사용해야 합니다. 여기서 첫 번째 부분은 데이터베이스 이름이고, 두 번째 부분은 AWS Glue 데이터베이스 이름이며, 세 번째 부분은 AWS Glue 테이블 이름입니다.

SELECT * FROM awsdatacatalog.<aws-glue-db-name>.<aws-glue-table-name>;

AWS Glue Data Catalog 데이터를 읽고 Amazon Redshift 테이블을 채우는 다양한 시나리오를 수행할 수 있습니다.

다음 예제 SQL은 AWS Glue에 정의된 두 테이블을 조인합니다.

SELECT pn.emp_id, alias, role, project_name FROM "awsdatacatalog"."empl_db"."project_name_table" pn, "awsdatacatalog"."empl_db"."project_alias_table" pa WHERE pn.emp_id = pa.emp_id;

다음 예제 SQL은 Amazon Redshift 테이블을 만들고 두 AWS Glue 테이블의 조인에서 얻은 데이터로 테이블을 채웁니다.

CREATE TABLE dev.public.glue AS SELECT pn.emp_id, alias, role, project_name FROM "awsdatacatalog"."empl_db"."project_name_table" pn, "awsdatacatalog"."empl_db"."project_alias_table" pa WHERE pn.emp_id = pa.emp_id;