

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# Apache Iceberg 테이블에서 지원되는 데이터 유형
<a name="querying-iceberg-supported-data-types"></a>

이 주제에서는 Redshift Spectrum이 Apache Iceberg 형식의 테이블에서 읽을 수 있는 지원되는 데이터 유형에 대해 설명합니다.

Amazon Redshift는 다음 데이터 형식이 포함된 Iceberg 테이블을 쿼리할 수 있습니다.

```
binary
boolean
date
decimal
double
float
int
list
long
map
string
struct
timestamp without time zone
```

Iceberg 테이블을 생성하고 정의할 때 SQL 문에서 Amazon Redshift 데이터 형식 이름을 사용합니다. Redshift는 자동으로 해당 Iceberg 유형에 매핑합니다. Iceberg 데이터 형식에 대한 자세한 내용은 Apache Iceberg 설명서에서 [Iceberg용 스키마](https://iceberg.apache.org/docs/latest/schemas/)를 참조하세요.

Iceberg 테이블에서 읽을 때 Iceberg 데이터 형식은 아래 표와 같이 Redshift 데이터 형식으로 매핑됩니다.


****  

| Iceberg 형식 | Amazon Redshift 형식 | 참고 | 
| --- | --- | --- | 
| boolean | boolean | - | 
| - | tinyint | Iceberg 테이블에는 지원되지 않습니다. | 
| - | smallint | Iceberg 테이블에는 지원되지 않습니다. | 
| int | int | - | 
| long | bigint | - | 
| double | double precision | - | 
| float | real | - | 
| decimal(P, S) | decimal(P, S) | P는 정밀도이며, S는 스케일입니다. | 
| - | char | Iceberg 테이블에는 지원되지 않습니다. | 
| string | varchar(16384) | 16384보다 큰 문자열은 16384로 잘립니다. | 
| binary | varbyte(64000) | - | 
| date | date | - | 
| time | - | - | 
| timestamp | timestamp | - | 
| timestamptz | timestampz | - | 
| list<E> | SUPER | - | 
| map<K,V> | SUPER | - | 
| struct<...> | SUPER | - | 
| fixed(L) | - | fixed(L) 형식은 현재 Redshift Spectrum에서 지원되지 않습니다. | 
| uuid | - | uuid 형식은 현재 Redshift Spectrum에서 지원되지 않습니다. | 
| variant | - | Amazon Redshift는 Iceberg V3를 지원하지 않습니다. | 
| geometry | - | Amazon Redshift는 Iceberg V3를 지원하지 않습니다. | 
| geography | - | Amazon Redshift는 Iceberg V3를 지원하지 않습니다. | 
| timestamp\$1ns | - | Amazon Redshift는 Iceberg V3를 지원하지 않습니다. | 
| timestamptz\$1ns | - | Amazon Redshift는 Iceberg V3를 지원하지 않습니다. | 
| Unknown | - | Amazon Redshift는 Iceberg V3를 지원하지 않습니다. | 

Redshift에서 Iceberg 테이블을 생성할 때 다음 데이터 유형이 지원됩니다. Redshift 데이터 형식은 다음 표와 같이 Iceberg 데이터 형식으로 매핑됩니다.


****  

| Amazon Redshift 형식 | Amazon Redshift 별칭 | Iceberg 형식 | 참고 | 
| --- | --- | --- | --- | 
| integer | int, int4 | int | - | 
| bigint | int8 | long | - | 
| decimal | numeric | decimal(p,S) | - | 
| real | float4 | float | - | 
| double precision | float8, float | double | - | 
| varchar | charactter varying,nvarchar, text | string | Iceberg 테이블을 생성할 때는 varchar(n) 데이터 유형이 지원되지 않습니다. | 
| date | - | date | - | 
| timestamp | - | timestamp | - | 
| timestamptz | - | timestamptz | - | 
| boolean | - | boolean | - | 

Iceberg 테이블에 쓸 때 이전 표에 언급된 데이터 유형 외에도 일부 소스 데이터 유형은 다음 테이블과 같이 호환되는 Iceberg 유형으로 승격됩니다.


| Amazon Redshift 형식 | Iceberg 형식 | 
| --- | --- | 
|  `tinyint`  |  `int`  | 
|  `smallint`  |  `int`  | 
|  `varchar(n)`  |  `string`  | 

지원되지 않는 데이터 형식을 사용하려고 하면 구문 오류가 발생합니다. `CREATE TABLE AS SELECT` 절을 사용하여 Iceberg 테이블을 생성할 때 명시적 캐스트를 추가하여 유형 차이를 해결할 수 있습니다.

예를 들어, Redshift RMS 테이블에 다음 스키마가 있다고 가정해보겠습니다.

```
CREATE TABLE rms_t (c1 int, c2 char(20));
```

`rms_t`를 소스로 사용하여 Iceberg 테이블을 생성하려면 `varchar(n)` 유형이 지원되지 않으므로 `c2` 열에 대한 명시적 캐스트가 필요합니다.

```
CREATE TABLE ext_schema.iceberg_t AS SELECT c1, c2::varchar FROM rms_t;
```

Amazon Redshift의 데이터 형식에 대한 자세한 내용은 [데이터 타입](c_Supported_data_types.md)을 참조하세요.