외부 Hive 메타스토어 쿼리에서 카탈로그 이름 생략 - Amazon Athena

외부 Hive 메타스토어 쿼리에서 카탈로그 이름 생략

외부 Hive 메타스토어에서 DML 및 DDL 쿼리 실행 시, 쿼리 편집기에서 카탈로그 이름을 선택한 경우 해당 카탈로그 이름을 생략하여 쿼리 구문을 간소화할 수 있습니다. 이 기능에는 특정 제한 사항이 적용됩니다.

DML 문

등록된 카탈로그를 사용하여 쿼리를 실행하려면
  1. 다음 예와 같이 [[data_source_name].database_name].table_name 구문을 사용하여 데이터베이스 앞에 데이터 원본 이름을 배치할 수 있습니다.

    select * from "hms-catalog-1".hms_tpch.customer limit 10;
  2. 사용하려는 데이터 원본이 쿼리 편집기에서 이미 선택되어 있으면 다음 예와 같이 쿼리에서 해당 이름을 생략할 수 있습니다.

    select * from hms_tpch.customer limit 10:
    기본 데이터 원본을 사용하는 DML 쿼리
  3. 쿼리에서 여러 데이터 원본을 사용하는 경우 기본 데이터 원본 이름만 생략할 수 있으며 기본이 아닌 데이터 원본에 대해 전체 이름을 지정해야 합니다.

    예를 들어 쿼리 편집기에서 AwsDataCatalog가 기본 데이터 원본으로 선택되었다고 가정합니다. 다음 쿼리 발췌문의 FROM 문은 처음 두 데이터 원본 이름을 완전히 정규화하지만 세 번째 데이터 원본의 이름은 AWS Glue 데이터 카탈로그에 있으므로 생략합니다.

    ... FROM ehms01.hms_tpch.customer, "hms-catalog-1".hms_tpch.orders, hms_tpch.lineitem ...

DDL 문

다음 Athena DDL 문은 카탈로그 이름 접두사를 지원합니다. 다른 DDL 문의 카탈로그 이름 접두사로 인해 구문 오류가 발생합니다.

SHOW TABLES [IN [catalog_name.]database_name] ['regular_expression'] SHOW TBLPROPERTIES [[catalog_name.]database_name.]table_name [('property_name')] SHOW COLUMNS IN [[catalog_name.]database_name.]table_name SHOW PARTITIONS [[catalog_name.]database_name.]table_name SHOW CREATE TABLE [[catalog_name.][database_name.]table_name DESCRIBE [EXTENDED | FORMATTED] [[catalog_name.][database_name.]table_name [PARTITION partition_spec] [col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )]

DML 문과 마찬가지로 쿼리 편집기에서 데이터 원본과 데이터베이스를 선택할 때 쿼리에서 데이터 원본과 데이터베이스 접두사를 생략할 수 있습니다.

다음 이미지에서는 hms-catalog-1 데이터 원본 및 hms_tpch 데이터베이스가 쿼리 편집기에서 선택되어 있습니다. show create table customer 문은 hms-catalog-1 접두사와 hms_tpch 데이터베이스 이름이 쿼리 자체에서 생략된 경우에도 성공합니다.

기본 카탈로그를 사용하는 DDL 문.

JDBC 연결 문자열에 기본 데이터 원본 지정

Athena JDBC 드라이버를 사용하여 Athena를 외부 Hive 메타스토어에 연결할 때 Catalog 파라미터를 사용하여 SQL workbench와 같은 SQL 편집기에서 연결 문자열의 기본 데이터 원본 이름을 지정할 수 있습니다.

참고

최신 Athena JDBC 드라이버를 다운로드하려면 Athena와 함께 JDBC 드라이버 사용을 참조하세요.

다음 연결 문자열은 기본 데이터 원본 hms-catalog-name을 지정합니다.

jdbc:awsathena://AwsRegion=us-east-1;S3OutputLocation=s3://amzn-s3-demo-bucket/lambda/results/;Workgroup=AmazonAthenaPreviewFunctionality;Catalog=hms-catalog-name;

다음 이미지는 SQL Workbench에 구성된 샘플 JDBC 연결 URL을 보여줍니다.

SQL Workbench에서 JDBC 연결 URL 구성.