기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Standard 스토리지 클래스로 아카이브된 S3 객체 읽기
AWS Glue 사용
MySQL에서 Amazon S3로 오프로드된 데이터는 관계형 데이터베이스 관리 시스템(RDBMS)과 동일한 구조적 견고성과 일관성을 유지합니다.
AWS Glue 크롤러는 S3 객체를 크롤링하고, 데이터 유형을 추론하며, 테이블 메타데이터를 외부 테이블 DDL로 생성합니다. 크롤러 작업을 구성하는 경우 Amazon S3를 소스로 사용하고 모든 데이터 파일이 생성되는 S3 접두사 위치를 지정합니다. 구성에서 다음을 포함합니다.
-
크롤러 실행 옵션
-
선택적 테이블 접두사 기본 설정
-
테이블 생성을 위한 대상 데이터베이스
-
필요한 권한을 보유한 IAM 역할
작업을 간접 호출하면 데이터를 스캔하여 스키마를 추론하고 AWS Glue Data Catalog에서 AWS Glue 테이블로 보존합니다. AWS Glue 테이블은 기본적으로 Amazon Athena, Amazon Redshift Spectrum, Amazon EMR 기반 Apache Hive와 같은 분석 서비스를 사용하여 일반 데이터베이스 테이블과 같이 SQL 문으로 쿼리할 수 있는 외부 테이블입니다. 크롤러에 대한 자세한 내용은 AWS Glue 설명서를 참조하세요.
열 헤더가 지정된 .csv 파일의 경우 결과 테이블 열 이름에는 동일한 필드 이름이 반영됩니다. 데이터 형식은 데이터 객체 값을 기반으로 추론됩니다.
Parquet 파일의 경우 스키마는 데이터 자체 내부에 보존되며 결과 테이블에는 동일한 필드 이름과 데이터 유형이 반영됩니다.
또는 Athena 내부에서 DDL을 수동으로 실행하여 필요한 열 이름과 데이터 유형으로 테이블 정의를 생성할 수 있습니다. 그러면 Data Catalog 내부에 테이블 정의가 생성됩니다. Athena 테이블 생성에 대한 자세한 내용은 Amazon Athena 설명서를 참조하세요.
참고: CSV 파일에서 헤더 행이 누락된 경우 크롤러는 필드 이름을 일반적인 c_0, c_1, c_2 등으로 생성합니다.
Amazon S3 Select 사용
Amazon S3 Select를 사용하여 SQL 표현식을 통해 프로그래밍 방식으로 S3 객체를 읽을 수 있습니다. API 작업은 AWS CLI 명령 select-object-content를 사용하거나 Boto3와 같은 SDK를 사용해 Python에서 select_object_content 작업을 간접 호출하는 방식으로 간접 호출할 수 있습니다.
API 작업은 SQL 문을 파라미터로 지원하며, JSON 및 Parquet 유형의 파일만 읽을 수 있습니다. 출력은 출력 파일로 리디렉션될 수 있습니다.
이러한 작업은 각 S3 객체에 대해 간접 호출됩니다. 여러 파일의 경우 작업을 재귀적으로 실행합니다.
AWS CLI를 사용하여 작업을 실행하는 방법에 대한 자세한 내용은 AWS CLI 설명서를 참조하세요. Python SDK Boto3를 사용하여 S3 Select를 실행하는 방법에 대한 자세한 내용은 Boto3 설명서