Supported data types with Apache Iceberg tables - Amazon Redshift
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Amazon Redshift will no longer support the creation of new Python UDFs starting November 1, 2025. If you would like to use Python UDFs, create the UDFs prior to that date. Existing Python UDFs will continue to function as normal. For more information, see the blog post .

Supported data types with Apache Iceberg tables

This topic describes the supported data types that Redshift Spectrum can read from tables in Apache Iceberg format.

Amazon Redshift can query Iceberg tables that contain the following data types:

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

When you create and define an Iceberg table, use the Amazon Redshift data type names in the SQL statement. Redshift automatically maps them to the corresponding Iceberg types. For more information about Iceberg data types, see the Schemas for Iceberg in the Apache Iceberg documentation.

When reading from Iceberg tables, Iceberg data-types are mapped into Redshift data-types as shown in the below table:

Iceberg type Amazon Redshift type Notes
boolean boolean -
- tinyint Not supported for Iceberg tables.
- smallint Not supported for Iceberg tables.
int int -
long bigint -
double double precision -
float real -
decimal(P, S) decimal(P, S) P is precision, S is scale.
- char Not supported for Iceberg tables.
string varchar(16384) Strings larger than 16384 are truncated to 16384.
binary varbyte(64000) -
date date -
time - -
timestamp timestamp -
timestamptz timestampz -
list<E> SUPER -
map<K,V> SUPER -
struct<...> SUPER -
fixed(L) - The fixed(L) type isn't currently supported in Redshift Spectrum.
uuid - The uuid type isn't currently supported in Redshift Spectrum.
variant - Amazon Redshift doesn't support Iceberg V3.
geometry - Amazon Redshift doesn't support Iceberg V3.
geography - Amazon Redshift doesn't support Iceberg V3.
timestamp_ns - Amazon Redshift doesn't support Iceberg V3.
timestamptz_ns - Amazon Redshift doesn't support Iceberg V3.
Unknown - Amazon Redshift doesn't support Iceberg V3.

The following data-types are supported when creating Iceberg tables from Redshift. Redshift data-types are mapped into Iceberg data-types as shown in the following table.

Amazon Redshift type Amazon Redshift alias Iceberg type Notes
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 The varchar(n) data type is not supported when creating an Iceberg table.
date - date -
timestamp - timestamp -
timestamptz - timestamptz -
boolean - boolean -

When writing to Iceberg tables, in addition to the data-types mentioned in the previous table, some source-data types are type promoted to their compatible Iceberg types as shown in the following table.

Amazon Redshift type Iceberg type

tinyint

int

smallint

int

varchar(n)

string

Attempting to use data types that are not supported will result in syntax errors. When you create an Iceberg table with CREATE TABLE AS SELECT clause, you can add explicit cast to work around the type difference.

For example, suppose you have a Redshift RMS table with the following schema:

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

If you want to create an Iceberg table using rms_t as the source, you need an explicit cast for the c2 column, because the varchar(n) type is not supported:

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

For more information about data types in Amazon Redshift, see Data types.