

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.

# Datenformate und Typenzuordnungen
<a name="aurora-analytics-type-mapping"></a>

Wenn Sie eine Fremdtabelle erstellen, ordnet die Erweiterung Datentypen von Parquet oder Iceberg den PostgreSQL-Datentypen zu. In diesem Abschnitt wird beschrieben, wie Aurora PostgreSQL die Typzuweisung durchführt und welche PostgreSQL-Datentypen unterstützt werden.

**Topics**
+ [Automatische Zuordnung von Datentypen](#aurora-analytics-type-mapping-automatic)
+ [Typen, die für automatische Schemainferenz nicht unterstützt werden](#aurora-analytics-type-mapping-unsupported-inference)
+ [Datentypen für fremde Tabellenspalten](#aurora-analytics-type-mapping-column-types)

## Automatische Zuordnung von Datentypen
<a name="aurora-analytics-type-mapping-automatic"></a>

Wenn Sie eine Fremdtabelle ohne Angabe von Spaltendefinitionen (mit leeren Klammern) erstellen, leitet Aurora PostgreSQL automatisch Spaltennamen und Datentypen aus der entfernten Datenquelle ab.

Die folgende Tabelle zeigt, wie Quelltypen abgeleitet werden, die sowohl in Parquet als auch in Iceberg existieren.


**Typinferenz für die Quelltypen Parquet und Iceberg**  

| Art des Parketts | Iceberg-Typ | PostgreSQL-Typ | 
| --- | --- | --- | 
| BOOLEAN | boolean | boolean | 
| INT32 | int | integer | 
| INT64 | long | bigint | 
| FLOAT | float | real | 
| DOUBLE | double | double precision | 
| DECIMAL(p,s) | decimal(p,s) | numeric(p,s) | 
| BYTE\_ARRAY | binary | bytea | 
| FIXED\_LEN\_BYTE\_ARRAY | fixed(L) | bytea | 
| STRING (UTF-8) | string | text | 
| UUID | uuid | uuid | 
| DATE | date | date | 
| TIME (millis/micros, isAdjustedToUTC = false) | time | time | 
| TIMESTAMP (micros/millis, isAdjustedToUTC = false) | timestamp | timestamp | 
| TIMESTAMP(Nanos,) isAdjustedToUTC = false | timestamp\_ns | timestamp | 
| TIMESTAMP (micros/millis, isAdjustedToUTC = true) | timestamptz | timestamptz | 
| TIMESTAMP(Nanos,) isAdjustedToUTC = true | timestamptz\_ns | timestamptz | 

Die folgenden zusätzlichen Parketttypen haben kein Iceberg-Äquivalent und werden wie abgebildet abgeleitet.


**Typinferenz für Quelltypen Parquet-only**  

| Typ Parkett | PostgreSQL-Typ | 
| --- | --- | 
| INT\_8(1 Byte Ganzzahl) | smallint | 
| INT16 | smallint | 
| UNSIGNED INT8 | smallint | 
| UNSIGNED INT16 | integer | 
| UNSIGNED INT32 | bigint | 
| UNSIGNED INT64 | numeric(20,0) | 
| ENUM(logisch) | varchar | 
| JSON | json | 
| TIME (millis/micros, isAdjustedToUTC = true) | timetz | 
| Legacy-Zeitstempel (Nanosekunde) | timestamp | 
| INTERVAL | interval | 
| BIT | varbit | 

## Typen, die für automatische Schemainferenz nicht unterstützt werden
<a name="aurora-analytics-type-mapping-unsupported-inference"></a>

Die folgenden Typen von Remote-Quellen können nicht automatisch abgeleitet werden. Wenn Sie eine Fremdtabelle mit einer leeren Spaltenliste erstellen und die Quelle einen dieser Typen enthält, wird ein Fehler `CREATE FOREIGN TABLE` zurückgegeben:
+ `STRUCT`
+ `MAP`
+ `LIST`
+ `GEOMETRY`
+ `GEOGRAPHY`

Sie können diese Spalten auf zwei Arten handhaben:
+ **Sie überspringen**: Ist `true` so eingestellt`aurora_analytics.skip_unsupported_columns`, dass die automatische Schemainferenz die nicht unterstützten Spalten überspringt und die Fremdtabelle mit den verbleibenden Spalten erstellt. Für jede übersprungene Spalte wird ein Hinweis ausgegeben.
+ **Definieren Sie sie manuell**: Geben Sie die Spaltenliste explizit an und deklarieren Sie die Struktur-, Map- oder verschachtelten Listenspalten als `json` (oder `varchar` für eine systemeigene Textdarstellung). Aurora PostgreSQL gibt die Daten dann im Standard-JSON-Format zurück.

```
CREATE FOREIGN TABLE my_table (
    id integer,
    name text,
    struct_col json,
    map_col json,
    list_of_struct json
)
SERVER aurora_analytics_server
OPTIONS (location 's3://my-bucket/data/', format 'parquet');
```

## Datentypen für fremde Tabellenspalten
<a name="aurora-analytics-type-mapping-column-types"></a>

Alle PostgreSQL-Datentypen funktionieren in Fremdtabellenabfragen (in Ausdrücken, Ergebnissen und Verknüpfungen) genauso wie in jeder PostgreSQL-Abfrage. In den folgenden Abschnitten geht es um eine engere Frage: als welche Typen Sie eine fremde Tabellenspalte definieren können und in welche die Analyse-Engine eine Parquet- oder Iceberg-Spalte einlesen kann. Ein Typ, der hier nicht unterstützt wird, kann nicht als Spaltentyp für fremde Tabellen verwendet werden, aber Sie können diesen Typ trotzdem beliebig an anderer Stelle in derselben Abfrage verwenden.

### Vollständig unterstützte Typen
<a name="aurora-analytics-type-mapping-fully-supported"></a>

Die folgenden PostgreSQL-Datentypen werden als Fremdtabellenspaltentypen vollständig unterstützt:`BOOLEAN`,`BYTEA`,`INTEGER`,`SMALLINT`,`BIGINT`,`REAL`,,`DOUBLE PRECISION`, `TEXT` `JSON``DATE`, und. `UUID`

### Teilweise unterstützte Typen
<a name="aurora-analytics-type-mapping-partially-supported"></a>

Die folgenden PostgreSQL-Datentypen werden mit Einschränkungen unterstützt.


**Teilweise unterstützte Fremdtabellenspaltentypen**  

| PostgreSQL-Typ | Einschränkung | 
| --- | --- | 
| VARCHAR, BPCHAR | Längenbeschränkungen werden nicht unterstützt (z. B. VARCHAR(n) oderCHAR(n)). | 
| NUMERIC, DECIMAL | Genauigkeit (P) und Skala (S) müssen explizit definiert werden. P muss zwischen 1 und 38 liegen. S muss zwischen 0 und P liegen. | 
| TIME, TIMETZ | Nur maximale Genauigkeit (6) wird unterstützt. | 
| TIMESTAMP, TIMESTAMPTZ | Nur maximale Genauigkeit (6) wird unterstützt. | 
| BIT, VARBIT | Längenbeschränkungen werden nicht unterstützt (z. B. BIT(n) oderVARBIT(n)). | 
| INTERVAL | Nur maximale Genauigkeit (6) wird unterstützt. Sonderwerte inf-inf, und NaN werden nicht unterstützt. | 

### Typen werden für fremde Tabellenspalten nicht unterstützt
<a name="aurora-analytics-type-mapping-not-supported"></a>

Die folgenden PostgreSQL-Datentypen können nicht als Fremdtabellenspaltentypen verwendet werden. Wenn eine Fremdtabellenspalte als einer dieser Typen definiert ist (oder eine Quellspalte während der Schemainferenz einer Spalte zugeordnet wird), wird ein Fehler `CREATE FOREIGN TABLE` zurückgegeben. Sie können diese Typen immer noch an anderer Stelle in einer Abfrage verwenden (z. B. beim Erstellen eines `JSONB` Werts in der `SELECT` Liste oder beim Filtern mit einem Array), da die Einschränkung in der Spaltendefinition und nicht in der Verwendung von Abfragen gilt.


**Spaltentypen für fremde Tabellen werden nicht unterstützt**  

| PostgreSQL-Typ | Hinweise | 
| --- | --- | 
| JSONB | — | 
| SMALLSERIAL, SERIAL, BIGSERIAL | — | 
| Array-Typen | Zum Beispiel INTEGER[], TEXT[]. | 
| ENUM | — | 
| INET, CIDR, MACADDR, MACADDR8 | — | 
| MONEY | — | 
| Intervall-Typen | Zum BeispielINT4RANGE,TSRANGE,DATERANGE. | 
| Geometrische Typen | Zum Beispiel: POINT, LINE, POLYGON, CIRCLE. | 
| TSVECTOR, TSQUERY | — | 
| XML | — | 

**Anmerkung**  
Wenn Aurora PostgreSQL automatisch das Schema einer fremden Tabelle ableitet und die Quelle Spalten enthält, die sie nicht zuordnen kann, tritt standardmäßig ein Fehler auf. Setzen Sie den `aurora_analytics.skip_unsupported_columns` Parameter auf, `true` um stattdessen diese Spalten zu überspringen und die Fremdtabelle mit den verbleibenden unterstützten Spalten zu erstellen.