

# AWS Glue 유형 시스템
<a name="glue-types"></a>

 AWS Glue는 여러 유형 시스템을 사용하여 매우 다른 방식으로 데이터를 저장하는 데이터 시스템에 대해 다양한 인터페이스를 제공합니다. 이 문서는 AWS Glue 유형 시스템 및 데이터 표준을 명확하게 설명합니다.

## AWS Glue 데이터 카탈로그 유형
<a name="glue-types-catalog"></a>

데이터 카탈로그는 다양한 데이터 시스템인 메타스토어에 저장된 테이블 및 필드의 레지스트리입니다. AWS Glue 크롤러 및 Spark를 사용한 AWS Glue 작업과 같은 AWS Glue 구성 요소가 데이터 카탈로그에 기록하면 내부 유형 시스템을 사용하여 필드 유형을 추적합니다. 이러한 값은 AWS Glue 콘솔에 있는 테이블 스키마의 **데이터 유형** 열에 표시됩니다. 이 유형 시스템은 Apache Hive의 유형 시스템을 기반으로 합니다. Apache Hive 유형 시스템에 대한 자세한 내용은 Apache Hive 위키의 [유형](https://cwiki.apache.org/confluence/display/hive/languagemanual+types)을 참조하세요. 특정 유형 및 지원에 대한 자세한 내용은 스키마 빌더의 일부로 AWS Glue Console에서 예제를 참조하세요.

### 검증, 호환성 및 기타 용도
<a name="w2aac11c31b5b5"></a>

데이터 카탈로그는 유형 필드에 기록된 유형을 검증하지 않습니다. AWS Glue 구성 요소는 데이터 카탈로그를 읽고 쓸 때 서로 호환됩니다. AWS Glue 구성 요소는 또한 Hive 유형과의 높은 호환성을 유지하는 것을 목표로 합니다. 그러나 AWS Glue 구성 요소가 모든 Hive 유형과의 호환성을 보장하지는 않습니다. 이를 통해 데이터 카탈로그의 테이블로 작업할 때 Athena DDL과 같은 도구와의 상호 운용성이 가능합니다.

데이터 카탈로그는 유형을 검증하지 않으므로 다른 서비스에서는 데이터 카탈로그를 사용하여 Hive 유형 시스템 또는 기타 시스템을 엄격하게 준수하는 시스템을 사용하여 유형을 추적할 수 있습니다.

## Spark 스크립트가 포함된 AWS Glue의 유형
<a name="glue-types-spark"></a>

Spark 스크립트가 포함된 AWS Glue가 데이터세트를 해석하거나 변환할 때 스크립트에서 사용된 데이터세트의 인 메모리 표현인 `DynamicFrame`을 제공합니다. `DynamicFrame`의 목표는 Spark `DataFrame`의 목표와 유사합니다. Spark가 데이터에 대한 변환을 예약하고 실행할 수 있도록 데이터세트를 모델링하는 것입니다. `toDF` 및 `fromDF` 메서드를 제공하여 `DynamicFrame`의 유형 표현이 `DataFrame`과 상호 호환되도록 보장합니다.

유형 정보가 유추되거나 `DataFrame`에 제공될 수 있는 경우 달리 문서화되지 않는 한 이를 유추하거나`DynamicFrame`에 제공할 수 있습니다. 특정 데이터 형식에 최적화된 리더 또는 라이터를 제공하는 경우, Spark가 사용자의 데이터를 읽거나 쓸 수 있는 경우 제공된 리더 및 라이터는 문서화된 제한에 따라 데이터를 읽거나 쓸 수 있습니다. 리더 및 라이터에 관한 자세한 내용은 [AWS Glue for Spark에서 입력 및 출력의 데이터 형식 옵션](aws-glue-programming-etl-format.md) 섹션을 참조하세요.

### 선택 유형
<a name="w2aac11c31b7b7"></a>

`DynamicFrames`는 디스크에서 행 간에 유형이 일치하지 않을 수 있는 값인 데이터 세트의 필드를 모델링하는 메커니즘을 제공합니다. 예를 들어 필드는 특정 행에는 문자열로 저장된 숫자를, 다른 행에는 정수를 포함할 수 있습니다. 이 메커니즘은 `Choice`라고 하는 인 메모리 유형입니다. 선택 열을 구체적인 유형으로 해결하기 위한 `ResolveChoice` 메서드와 같은 변환을 제공합니다. AWS Glue ETL은 일반적인 작업 과정에서 선택 유형을 데이터 카탈로그에 기록하지 않습니다. 선택 유형은 데이터 세트의 DynamicFrame 메모리 모델 컨텍스트에서만 존재합니다. 선택 유형 사용 예는 [코드 예: ResolveChoice, Lambda, 및 ApplyMapping을 사용한 데이터 준비](aws-glue-programming-python-samples-medicaid.md) 섹션을 참조하세요.

## AWS Glue 크롤러 유형
<a name="glue-types-crawler"></a>

크롤러는 데이터세트에 대해 일관되고 사용 가능한 스키마를 생성한 다음 다른 AWS Glue 구성 요소 및 Athena에서 사용할 수 있도록 데이터 카탈로그에 저장하는 것을 목표로 합니다. 크롤러는 데이터 카탈로그의 이전 섹션 [AWS Glue 데이터 카탈로그 유형](#glue-types-catalog)에서 정의된 유형을 다룹니다. 열에 두 개 이상의 유형 값이 포함된 '선택' 유형 시나리오에서 사용 가능한 유형을 생성하기 위해 크롤러는 잠재적 유형을 모델링하는 `struct` 유형을 만듭니다.