

# 데이터 타입
<a name="s3-select-sql-reference-data-types"></a>

**중요**  
신규 고객은 더 이상 Amazon S3 Select를 사용할 수 없습니다. Amazon S3 Select 기존 고객은 평소처럼 이 기능을 계속 사용할 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select에서는 몇 가지 기본 데이터 형식을 지원합니다.

## 데이터 형식 변환
<a name="s3-select-sql-reference-data-conversion"></a>

일반적 규칙은 `CAST` 함수에 따르는 것입니다(정의된 경우). `CAST`를 정의하지 않는 경우, 모든 입력 데이터를 문자열로 취급합니다. 이 경우 필요한 경우 입력 데이터를 관련 데이터 유형으로 캐스팅해야 합니다.

`CAST` 함수에 대한 자세한 내용은 [CAST](s3-select-sql-reference-conversion.md#s3-select-sql-reference-cast) 단원을 참조하십시오.

## 지원되는 데이터 유형
<a name="s3-select-sql-reference-supported-data-types"></a>

Amazon S3 Select에서는 다음과 같은 일련의 기본 데이터 형식들을 지원합니다.


|  이름  |  설명  |  예제  | 
| --- | --- | --- | 
| `bool` | 부울 값으로 `TRUE` 또는 `FALSE` 둘 중 하나입니다. | `FALSE` | 
| `int`, `integer` | 9,223,372,036,854,775,808 \$1 9,223,372,036,854,775,807 범위의 8바이트 부호 있는 정수입니다. | `100000` | 
| `string` | UTF8로 인코딩된 가변 길이 문자열입니다. 기본 한도는 1자입니다. 최대 문자 한도는 2,147,483,647입니다. | `'xyz'` | 
| `float` | 8바이트 부동 소수점 숫자입니다. | `CAST(0.456 AS FLOAT)` | 
| `decimal`, `numeric` |  최대 정밀도(최대 유효 숫자 수)가 38이고, 스케일 범위가 -231\$1231-1(십진수 지수)인 10진수입니다.  사용자가 그 두 가지를 동시에 제공하면 Amazon S3 Select는 스케일과 정밀도를 무시합니다.   | `123.456 ` | 
| `timestamp` |  타임스탬프는 시간상 특정 순간을 나타내며, 항상 로컬 오프셋을 포함하고, 임의 정밀도가 가능합니다. 텍스트 형식에서 타임스탬프는 [날짜 및 시간 형식에 대한 W3C 노트](https://www.w3.org/TR/NOTE-datetime)를 따르지만 적어도 종일 정밀도가 아니라면 리터럴 `T`로 끝나야 합니다. 소수부 초는 한 자리 이상의 정밀도와 무한대의 최대값을 포함하여 허용됩니다. 로컬 시간 오프셋은 UTC로부터의 hour:minute 오프셋이나 UTC의 로컬 시간을 가리키는 리터럴 `Z`로 나타낼 수 있습니다. 로컬 시간 오프셋은 시간이 포함된 타임스탬프에서 필수이며, 날짜 값에서는 허용되지 않습니다.  | `CAST('2007-04-05T14:30Z' AS TIMESTAMP)` | 

### 지원되는 Parquet 유형
<a name="s3-select-sql-reference-supported-data-types-parquet"></a>

Amazon S3 Select는 다음과 같은 Parquet 유형을 지원합니다.
+ `DATE`
+ `DECIMAL`
+ `ENUM`
+ `INT(8)`
+ `INT(16)`
+ `INT(32)`
+ `INT(64)`
+ `LIST`
**참고**  
`LIST` Parquet 유형 출력의 경우, Amazon S3 Select는 JSON 형식만 지원합니다. 단, 쿼리에서 데이터를 단순 값으로 제한하는 경우 `LIST` Parquet 유형도 CSV 형식으로 쿼리할 수 있습니다.
+ `STRING`
+ `TIMESTAMP` 지원되는 정밀도(`MILLIS`/`MICROS`/`NANOS`)
**참고**  
`INT(96)`로 저장된 타임스탬프는 지원되지 않습니다.  
`INT(64)` 유형의 범위로 인해 `NANOS` 단위를 사용하는 타임스탬프는 `1677-09-21 00:12:43`과 `2262-04-11 23:47:16` 사이의 값만 나타낼 수 있습니다. 이 범위를 벗어난 값은 `NANOS` 단위로 나타낼 수 없습니다.

### Amazon S3 Select에서 Parquet 유형을 지원되는 데이터 유형에 매핑
<a name="s3-select-sql-reference-supported-data-types-parquet-mapping"></a>


| Parquet 유형 | 지원되는 데이터 유형 | 
| --- | --- | 
| `DATE` |  `timestamp`  | 
|  `DECIMAL`  |  `decimal`, `numeric`  | 
|  `ENUM`  |  `string`  | 
|  `INT(8)`  |  `int`, `integer`  | 
|  `INT(16)`  | `int`, `integer` | 
| `INT(32)` | `int`, `integer` | 
|  `INT(64)`  |  `decimal`, `numeric`  | 
|  `LIST`  |  목록의 각 Parquet 유형은 해당 데이터 유형에 매핑됩니다.  | 
|  `STRING`  |  `string`  | 
|  `TIMESTAMP`  |  `timestamp`  | 