Mit Apache-Iceberg-Tabellen unterstützte Datentypen - Amazon Redshift

Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im Blog-Posting.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Mit Apache-Iceberg-Tabellen unterstützte Datentypen

In diesem Thema werden die unterstützten Datentypen beschrieben, die Redshift Spectrum aus Tabellen im Apache Iceberg-Format lesen kann.

Amazon Redshift kann Iceberg-Tabellen abfragen, welche die folgenden Datentypen enthalten:

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

Wenn Sie eine Iceberg-Tabelle erstellen und definieren, verwenden Sie die Amazon Redshift Redshift-Datentypnamen in der SQL-Anweisung. Redshift ordnet sie automatisch den entsprechenden Eisbergtypen zu. Weitere Informationen zu Iceberg-Datentypen finden Sie unter Schemata für Iceberg in der Apache-Iceberg-Dokumentation.

Beim Lesen aus Iceberg-Tabellen werden Iceberg-Datentypen Redshift-Datentypen zugeordnet, wie in der folgenden Tabelle dargestellt:

Iceberg-Typ Amazon-Redshift-Typ Hinweise
boolean boolean -
- tinyint Nicht unterstützt für Iceberg-Tabellen.
- smallint Nicht unterstützt für Iceberg-Tabellen.
int int -
long bigint -
double double precision -
float real -
decimal(P, S) decimal(P, S) P ist Präzision, S ist Skalierung.
- char Nicht unterstützt für Iceberg-Tabellen.
string varchar(16384) Zeichenfolgen, die größer als 16384 sind, werden auf 16384 gekürzt.
binary varbyte(64000) -
date date -
time - -
timestamp timestamp -
timestamptz timestampz -
list<E> SUPER -
map<K,V> SUPER -
struct<...> SUPER -
fixed(L) - Der Typ fixed(L) wird derzeit in Redshift Spectrum nicht unterstützt.
uuid - Der Typ uuid wird derzeit in Redshift Spectrum nicht unterstützt.
variant - Amazon Redshift unterstützt Iceberg V3 nicht.
geometry - Amazon Redshift unterstützt Iceberg V3 nicht.
geography - Amazon Redshift unterstützt Iceberg V3 nicht.
timestamp_ns - Amazon Redshift unterstützt Iceberg V3 nicht.
timestamptz_ns - Amazon Redshift unterstützt Iceberg V3 nicht.
Unknown - Amazon Redshift unterstützt Iceberg V3 nicht.

Die folgenden Datentypen werden bei der Erstellung von Iceberg-Tabellen aus Redshift unterstützt. Redshift-Datentypen werden Iceberg-Datentypen zugeordnet, wie in der folgenden Tabelle dargestellt.

Amazon-Redshift-Typ Amazon Redshift Redshift-Aliasname Iceberg-Typ Hinweise
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 Der varchar(n) Datentyp wird beim Erstellen einer Iceberg-Tabelle nicht unterstützt.
date - date -
timestamp - timestamp -
timestamptz - timestamptz -
boolean - boolean -

Beim Schreiben in Iceberg-Tabellen werden zusätzlich zu den in der vorherigen Tabelle genannten Datentypen einige Quelldatentypen auf ihre kompatiblen Iceberg-Typen heraufgestuft, wie in der folgenden Tabelle dargestellt.

Amazon-Redshift-Typ Iceberg-Typ

tinyint

int

smallint

int

varchar(n)

string

Der Versuch, Datentypen zu verwenden, die nicht unterstützt werden, führt zu Syntaxfehlern. Wenn Sie eine Iceberg-Tabelle mit CREATE TABLE AS SELECT Klausel erstellen, können Sie eine explizite Umwandlung hinzufügen, um den Typunterschied zu umgehen.

Nehmen wir beispielsweise an, Sie haben eine Redshift RMS-Tabelle mit dem folgenden Schema:

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

Wenn Sie eine Iceberg-Tabelle rms_t als Quelle erstellen möchten, benötigen Sie eine explizite Umwandlung für die c2 Spalte, da der varchar(n) Typ nicht unterstützt wird:

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

Weitere Informationen zu Datentypen in Amazon Redshift finden Sie unter Datentypen.