Tipos de dados compatíveis com tabelas do Apache Iceberg - Amazon Redshift

O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a publicação de blog .

Tipos de dados compatíveis com tabelas do Apache Iceberg

Este tópico descreve os tipos de dados compatíveis que o Redshift Spectrum pode ler em tabelas no formato Apache Iceberg.

O Amazon Redshift pode consultar tabelas do Iceberg que contêm os seguintes tipos de dados:

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

Ao criar e definir uma tabela do Iceberg, use os nomes dos tipos de dados do Amazon Redshift na instrução SQL. O Redshift os associa automaticamente aos tipos do iceberg correspondentes. Para obter mais informações sobre tipos de dados do Iceberg, consulte Esquemas para o Iceberg na documentação do Apache Iceberg.

Ao ler as tabelas do Iceberg, os tipos de dados do Iceberg são associados nos tipos de dados do Redshift, conforme mostrado na tabela abaixo:

Tipo do Iceberg Tipo do Amazon Redshift Observações
boolean boolean -
- tinyint Não é aceito em tabelas do Iceberg.
- smallint Não é aceito em tabelas do Iceberg.
int int -
long bigint -
double double precision -
float real -
decimal(P, S) decimal(P, S) P é precisão, S é escala.
- char Não é aceito em tabelas do Iceberg.
string varchar(16384) Strings maiores do que 16384 estão truncadas para 16384.
binary varbyte(64000) -
date date -
time - -
timestamp timestamp -
timestamptz timestampz -
list<E> SUPER -
map<K,V> SUPER -
struct<...> SUPER -
fixed(L) - No momento, o tipo fixed(L) não é aceito no Redshift Spectrum.
uuid - No momento, o tipo uuid não é aceito no Redshift Spectrum.
variant - O Amazon Redshift não comporta o Iceberg V3.
geometry - O Amazon Redshift não comporta o Iceberg V3.
geography - O Amazon Redshift não comporta o Iceberg V3.
timestamp_ns - O Amazon Redshift não comporta o Iceberg V3.
timestamptz_ns - O Amazon Redshift não comporta o Iceberg V3.
Unknown - O Amazon Redshift não comporta o Iceberg V3.

Os tipos de dados a seguir são aceitos ao criar tabelas do Iceberg a partir do Redshift. Os tipos de dados do Redshift são associados em tipos de dados do Iceberg, conforme mostrado na tabela a seguir.

Tipo do Amazon Redshift Alias do Amazon Redshift Tipo do Iceberg Observações
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 O tipo de dados varchar(n) não é aceito ao criar uma tabela do Iceberg.
date - date -
timestamp - timestamp -
timestamptz - timestamptz -
boolean - boolean -

Ao gravar em tabelas do Iceberg, além dos tipos de dados mencionados na tabela anterior, alguns tipos de dados de origem são promovidos para seus tipos do Iceberg aceitos, conforme mostrado na tabela a seguir.

Tipo do Amazon Redshift Tipo do Iceberg

tinyint

int

smallint

int

varchar(n)

string

A tentativa de usar tipos de dados não aceitos vai gerar erros de sintaxe. Ao criar uma tabela do Iceberg com uma cláusula CREATE TABLE AS SELECT, você pode adicionar conversão explícita para contornar a diferença de tipo.

Por exemplo, digamos que você tenha uma tabela do Redshift RMS com o seguinte esquema:

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

Se você quiser criar uma tabela do Iceberg usando rms_t como fonte, precisará de uma conversão explícita para a coluna c2, porque o tipo varchar(n) não é aceito:

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

Para obter mais informações sobre tipos de dados no Amazon Redshift, consulte Tipos de dados.