Apache Iceberg テーブルでサポートされているデータ型 - Amazon Redshift

Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、ブログ記事を参照してください。

Apache Iceberg テーブルでサポートされているデータ型

このトピックでは、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 のスキーマを参照してください。

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_ns - Amazon Redshift は Iceberg V3 をサポートしていません。
timestamptz_ns - 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 のデータ型の詳細については、「データ型」を参照してください。