

 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 table があるとします。

```
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)」を参照してください。