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
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 |
|---|---|
|
|
|
|
|
|
|
|
|
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.