외부 Hive 메타스토어 쿼리에서 카탈로그 이름 생략
외부 Hive 메타스토어에서 DML 및 DDL 쿼리 실행 시, 쿼리 편집기에서 카탈로그 이름을 선택한 경우 해당 카탈로그 이름을 생략하여 쿼리 구문을 간소화할 수 있습니다. 이 기능에는 특정 제한 사항이 적용됩니다.
DML 문
등록된 카탈로그를 사용하여 쿼리를 실행하려면
-
다음 예와 같이
[[
구문을 사용하여 데이터베이스 앞에 데이터 원본 이름을 배치할 수 있습니다.data_source_name
].database_name
].table_name
select * from "hms-catalog-1".hms_tpch.customer limit 10;
-
사용하려는 데이터 원본이 쿼리 편집기에서 이미 선택되어 있으면 다음 예와 같이 쿼리에서 해당 이름을 생략할 수 있습니다.
select * from hms_tpch.customer limit 10:
-
쿼리에서 여러 데이터 원본을 사용하는 경우 기본 데이터 원본 이름만 생략할 수 있으며 기본이 아닌 데이터 원본에 대해 전체 이름을 지정해야 합니다.
예를 들어 쿼리 편집기에서
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
데이터베이스 이름이 쿼리 자체에서 생략된 경우에도 성공합니다.
JDBC 연결 문자열에 기본 데이터 원본 지정
Athena JDBC 드라이버를 사용하여 Athena를 외부 Hive 메타스토어에 연결할 때 Catalog
파라미터를 사용하여 SQL workbench
참고
최신 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을 보여줍니다.