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

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

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

이 옵션의 이해를 돕기 위해 포함 경로가 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이라는 스키마가 있습니다.

AWS Management Console
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/glue/에서 AWS Glue 콘솔을 엽니다.

  2. 데이터 카탈로그에서 크롤러를 선택합니다.

  3. 새 크롤러를 구성하는 경우 출력 및 예약의 고급 옵션에서 각 S3 경로에 대해 단일 스키마 생성 옵션을 선택합니다.

AWS CLI

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

AWS CLI를 사용하여 크롤러를 구성할 때는 다음 구성 옵션을 설정합니다.

aws glue update-crawler \ --name myCrawler \ --configuration '{"Version": 1.0, "Grouping": {"TableGroupingPolicy": "CombineCompatibleSchemas" }}'
API

API를 사용하여 크롤러를 구성할 때는 다음 구성 옵션을 설정합니다.

예를 들어, 크롤러 API의 다음 JSON 객체를 나타내는 문자열로 Configuration 필드를 설정합니다.

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