AWS Glue 데이터 카탈로그 쿼리 - Amazon Athena

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Glue 데이터 카탈로그 쿼리

AWS Glue 데이터 카탈로그는 많은 AWS 서비스에서 중앙 메타데이터 리포지토리로 사용되므로 Data Catalog 메타데이터를 쿼리해야 할 수 있습니다. 이렇게 하려면 Athena에서 SQL 쿼리를 사용할 수 있습니다. Athena를 사용하여 데이터베이스, 테이블, 파티션 및 열과 같은 AWS Glue 카탈로그 메타데이터를 쿼리할 수 있습니다.

참고

개별 Hive DDL 명령을 사용하여 Athena에서 특정 데이터베이스, 테이블, 뷰, 파티션 및 열에 대한 메타데이터 정보를 추출할 수 있지만 출력은 테이블 형식이 아닙니다.

AWS Glue 카탈로그 메타데이터를 가져오려면 Athena 백엔드에서 information_schema 데이터베이스를 쿼리합니다. 이 주제의 예제 쿼리에서는 Athena를 사용하여 일반적인 사용 사례에 대한 AWS Glue 카탈로그 메타데이터를 쿼리하는 방법을 보여줍니다.

중요

CREATE VIEW를 사용하여 information_schema 데이터베이스에 뷰를 생성할 수 없습니다.

데이터베이스 나열 및 지정된 데이터베이스 검색

이 단원의 예제는 스키마 이름별로 메타데이터에서 데이터베이스를 나열하는 방법을 보여줍니다.

예 – 데이터베이스 나열

다음 예제 쿼리는 information_schema.schemata 테이블의 데이터베이스를 나열합니다.

SELECT schema_name FROM information_schema.schemata LIMIT 10;

다음 표는 샘플 결과를 보여 줍니다.

6 alb-databas1
7 alb_original_cust
8 alblogsdatabase
9 athena_db_test
10 athena_ddl_db

예 – 지정된 데이터베이스 검색

다음 예제 쿼리에서 rdspostgresql은 샘플 데이터베이스입니다.

SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'rdspostgresql'

다음 표는 샘플 결과를 보여 줍니다.

schema_name
1 rdspostgresql

지정된 데이터베이스의 테이블 나열 및 이름별로 테이블 검색

테이블에 대한 메타데이터를 나열하려면 테이블 스키마별로 또는 테이블 이름별로 쿼리할 수 있습니다.

예 – 스키마별로 테이블 나열

다음 쿼리는 rdspostgresql 테이블 스키마를 사용하는 테이블을 나열합니다.

SELECT table_schema, table_name, table_type FROM information_schema.tables WHERE table_schema = 'rdspostgresql'

다음 표는 샘플 결과를 보여줍니다.

table_schema table_name table_type
1 rdspostgresql rdspostgresqldb1_public_account BASE TABLE

예 – 이름별로 테이블 검색

다음 쿼리는 athena1 테이블에 대한 메타데이터 정보를 가져옵니다.

SELECT table_schema, table_name, table_type FROM information_schema.tables WHERE table_name = 'athena1'

다음 표는 샘플 결과를 보여줍니다.

table_schema table_name table_type
1 기본값 athena1 BASE TABLE

특정 테이블에 대한 파티션 나열

다음 예제와 같이 SHOW PARTITIONS table_name를 사용하여 지정된 테이블의 파티션을 나열할 수 있습니다.

SHOW PARTITIONS cloudtrail_logs_test2

메타데이터 쿼리를 사용하여 특정 테이블의 파티션 번호와 파티션 값을 나열할 수도 있습니다. 사용하는 구문은 Athena 엔진 버전에 따라 다릅니다.

예 – 의 테이블에 대한 파티션 쿼리

다음 예제 쿼리는 cloudtrail_logs_test2를 사용하여 테이블의 파티션을 나열합니다.

SELECT * FROM default."cloudtrail_logs_test2$partitions" ORDER BY partition_number

다음 표는 샘플 결과를 보여 줍니다.

table_catalog table_schema table_name 개월 day
1 awsdatacatalog 기본값 cloudtrail_logs_test2 2020 08 10
2 awsdatacatalog 기본값 cloudtrail_logs_test2 2020 08 11
3 awsdatacatalog 기본값 cloudtrail_logs_test2 2020 08 12

예 – 의 테이블에 대한 파티션 쿼리

다음 예제 쿼리는 cloudtrail_logs_test2를 사용하여 테이블의 파티션을 나열합니다.

SELECT * FROM information_schema.__internal_partitions__ WHERE table_schema = 'default' AND table_name = 'cloudtrail_logs_test2' ORDER BY partition_number

다음 표는 샘플 결과를 보여 줍니다.

table_catalog table_schema table_name partition_number partition_key partition_value
1 awsdatacatalog 기본값 cloudtrail_logs_test2 1 year 2018
2 awsdatacatalog 기본값 cloudtrail_logs_test2 1 month 09
3 awsdatacatalog 기본값 cloudtrail_logs_test2 1 day 30

지정된 테이블 또는 뷰에 대한 열 나열 또는 검색

테이블에 대한 모든 열, 뷰에 대한 모든 열을 나열하거나 지정된 데이터베이스와 테이블에서 이름별로 열을 검색할 수 있습니다.

예 – 지정된 테이블에 대한 모든 열 나열

다음 예제 쿼리는 rdspostgresqldb1_public_account 테이블에 대한 모든 열을 나열합니다.

SELECT * FROM information_schema.columns WHERE table_schema = 'rdspostgresql' AND table_name = 'rdspostgresqldb1_public_account'

다음 표는 샘플 결과를 보여 줍니다.

table_catalog table_schema table_name column_name ordinal_position column_default is_nullable data_type comment extra_info
1 awsdatacatalog rdspostgresql rdspostgresqldb1_public_account 암호 1 YES varchar
2 awsdatacatalog rdspostgresql rdspostgresqldb1_public_account user_id 2 YES integer
3 awsdatacatalog rdspostgresql rdspostgresqldb1_public_account created_on 3 YES 타임스탬프
4 awsdatacatalog rdspostgresql rdspostgresqldb1_public_account last_login 4 YES 타임스탬프
5 awsdatacatalog rdspostgresql rdspostgresqldb1_public_account 이메일 5 YES varchar
6 awsdatacatalog rdspostgresql rdspostgresqldb1_public_account 사용자 이름 6 YES varchar

예 – 지정된 뷰에 대한 열 나열

다음 예제 쿼리는 arrayview 뷰에 대한 default 데이터베이스의 모든 열을 나열합니다.

SELECT * FROM information_schema.columns WHERE table_schema = 'default' AND table_name = 'arrayview'

다음 표는 샘플 결과를 보여 줍니다.

table_catalog table_schema table_name column_name ordinal_position column_default is_nullable data_type comment extra_info
1 awsdatacatalog 기본값 arrayview searchdate 1 YES varchar
2 awsdatacatalog 기본값 arrayview sid 2 YES varchar
3 awsdatacatalog 기본값 arrayview btid 3 YES varchar
4 awsdatacatalog 기본값 arrayview p 4 YES varchar
5 awsdatacatalog 기본값 arrayview infantprice 5 YES varchar
6 awsdatacatalog 기본값 arrayview sump 6 YES varchar
7 awsdatacatalog 기본값 arrayview journeymaparray 7 YES array(varchar)

예 – 지정된 데이터베이스 및 테이블에서 이름으로 열 검색

다음 예제 쿼리는 default 데이터베이스의 arrayview 뷰에서 sid 열에 대한 메타데이터를 검색합니다.

SELECT * FROM information_schema.columns WHERE table_schema = 'default' AND table_name = 'arrayview' AND column_name='sid'

다음 표는 샘플 결과를 보여줍니다.

table_catalog table_schema table_name column_name ordinal_position column_default is_nullable data_type comment extra_info
1 awsdatacatalog 기본값 arrayview sid 2 YES varchar