각 Amazon S3 포함 경로에 대해 단일 스키마 생성 - AWS Glue

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

각 Amazon S3 포함 경로에 대해 단일 스키마 생성

기본적으로 크롤러가 Amazon S3에 저장된 데이터용 테이블을 정의하면 데이터 호환성과 스키마 유사성을 모두 고려합니다. 고려되는 데이터 호환성 요소에는 데이터가 동일한 형식 (예:JSON), 동일한 압축 유형 (예:GZIP), Amazon S3 경로의 구조, 기타 데이터 속성 등이 포함됩니다. 스키마 유사성은 개별 Amazon S3 객체의 스키마가 얼마나 근접하게 유사한지를 측정합니다.

가능하면 공통 테이블 정의에 호환 스키마를 결합(CombineCompatibleSchemas)하도록 크롤러를 구성할 수 있습니다. 이 옵션을 사용하는 경우 크롤러가 데이터 호환성을 고려하지만, 지정된 포함 경로에서 Amazon S3 객체를 평가할 때 특정 스키마의 유사성을 무시합니다.

스키마를 결합하기 위해 콘솔에서 크롤러를 구성하려는 경우 크롤러 옵션 Create a single schema for each S3 path(각 S3 경로에 대해 단일 스키마 생성)를 선택합니다.

를 사용하여 크롤러를 구성하는 경우 다음 구성 옵션을 설정하십시오. API

  • API크롤러에 있는 다음 JSON 객체를 문자열로 표현하여 Configuration 필드를 설정합니다. 예를 들면 다음과 같습니다.

    { "Version": 1.0, "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" } }

이 옵션의 이해를 돕기 위해 포함 경로가 s3://bucket/table1/인 크롤러를 정의한다고 가정해 보겠습니다. 크롤러가 실행되면 다음과 같은 특징을 가진 JSON 파일 두 개를 찾습니다.

  • 파일 1S3://bucket/table1/year=2017/data1.json

  • 파일 내용{“A”: 1, “B”: 2}

  • 스키마A:int, B:int

  • 파일 2S3://bucket/table1/year=2018/data2.json

  • 파일 내용{“C”: 3, “D”: 4}

  • 스키마C: int, D: int

스키마가 충분히 비슷하지 않으므로 기본적으로 크롤러가 year_2017year_2018이라는 두 테이블을 생성합니다. 하지만 Create a single schema for each S3 path(각 S3 경로에 대해 단일 스키마 생성) 옵션을 선택했으며 데이터가 호환되는 경우, 크롤러가 한 개 테이블을 생성합니다. 이 테이블에는 A:int,B:int,C:int,D:intpartitionKey year:string이라는 스키마가 있습니다.