Tipi di dati supportati con le tabelle Apache Iceberg - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tipi di dati supportati con le tabelle Apache Iceberg

In questo argomento vengono descritti i tipi di dati supportati che Redshift Spectrum può leggere dalle tabelle in formato Apache Iceberg.

Amazon Redshift può eseguire query su tabelle Iceberg che contengono i seguenti tipi di dati:

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

Quando crei e definisci una tabella Iceberg, utilizza i nomi dei tipi di dati di Amazon Redshift nell'istruzione SQL. Redshift li mappa automaticamente ai tipi di Iceberg corrispondenti. Per ulteriori informazioni sui tipi di tabella Iceberg, consulta Schemi per Iceberg nella documentazione di Apache.

Durante la lettura dalle tabelle Iceberg, i tipi di dati Iceberg vengono mappati nei tipi di dati Redshift come mostrato nella tabella seguente:

Tipo Iceberg Tipo di Amazon Redshift Note
boolean boolean -
- tinyint Non supportato per le tabelle Iceberg.
- smallint Non supportato per le tabelle Iceberg.
int int -
long bigint -
double double precision -
float real -
decimal(P, S) decimal(P, S) P è precisione, S è scala.
- char Non supportato per le tabelle Iceberg.
string varchar(16384) Le stringhe più grandi di 16384 vengono troncate in 16384.
binary varbyte(64000) -
date date -
time - -
timestamp timestamp -
timestamptz timestampz -
list<E> SUPER -
map<K,V> SUPER -
struct<...> SUPER -
fixed(L) - Il tipo fixed(L) non è attualmente supportato in Redshift Spectrum.
uuid - Il tipo uuid non è attualmente supportato in Redshift Spectrum.
variant - Amazon Redshift non supporta Iceberg V3.
geometry - Amazon Redshift non supporta Iceberg V3.
geography - Amazon Redshift non supporta Iceberg V3.
timestamp_ns - Amazon Redshift non supporta Iceberg V3.
timestamptz_ns - Amazon Redshift non supporta Iceberg V3.
Unknown - Amazon Redshift non supporta Iceberg V3.

I seguenti tipi di dati sono supportati durante la creazione di tabelle Iceberg da Redshift. I tipi di dati Redshift sono mappati nei tipi di dati Iceberg come mostrato nella tabella seguente.

Tipo di Amazon Redshift Alias Amazon Redshift Tipo Iceberg Note
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 Il tipo di varchar(n) dati non è supportato durante la creazione di una tabella Iceberg.
date - date -
timestamp - timestamp -
timestamptz - timestamptz -
boolean - boolean -

Quando si scrive su tabelle Iceberg, oltre ai tipi di dati menzionati nella tabella precedente, alcuni tipi di dati di origine vengono promossi ai tipi Iceberg compatibili, come illustrato nella tabella seguente.

Tipo di Amazon Redshift Tipo Iceberg

tinyint

int

smallint

int

varchar(n)

string

Il tentativo di utilizzare tipi di dati non supportati comporterà errori di sintassi. Quando crei una tabella Iceberg con CREATE TABLE AS SELECT clausola, puoi aggiungere un cast esplicito per aggirare la differenza di tipo.

Ad esempio, supponiamo di avere una tabella Redshift RMS con lo schema seguente:

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

Se vuoi creare una tabella Iceberg utilizzando rms_t come sorgente, hai bisogno di un cast esplicito per la c2 colonna, perché il varchar(n) tipo non è supportato:

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

Per ulteriori informazioni sui tipi di dati di Amazon Redshift, consultare Tipi di dati.