Optionen für das Mapping von Spalten - Amazon Redshift

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.

Optionen für das Mapping von Spalten

Standardmäßig fügt COPY Werte in derselben Reihenfolge in die Spalten der Zieltabelle ein, die die Felder in den Datendateien haben. Wenn die standardmäßige Spaltenreihenfolge nicht funktionieren wird, können Sie eine Spaltenliste angeben oder JSONPath-Ausdrücke verwenden, um den Zielspalten Quelldatenfelder zuzuweisen.

Spaltenliste

Sie können eine durch Komma getrennte Liste von Spaltennamen angeben, um Quelldatenfelder in spezifische Zielspalten zu laden. Die Spalten können in der COPY-Anweisung eine beliebige Reihenfolge aufweisen. Wenn sie jedoch aus Flat-Files geladen werden, beispielsweise in einem Amazon-S3-Bucket, muss ihre Reihenfolge mit der Reihenfolge der Quelldaten übereinstimmen.

Beim Laden aus einer Amazon-DynamoDB-Tabelle spielt die Reihenfolge keine Rolle. Der COPY-Befehl gleicht Attributnamen in den Elementen, die aus der DynamoDB-Tabelle abgerufen wurden, mit Spaltennamen in der Amazon-Redshift-Tabelle ab. Weitere Informationen finden Sie unter Laden von Daten aus einer Amazon-DynamoDB-Tabelle

Das Format einer Spaltenliste ist wie folgt.

COPY tablename (column1 [,column2, ...])

Wenn eine Spalte in der Zieltabelle aus der Spaltenliste ausgelassen wird, lädt COPY den DEFAULT-Ausdruck der Zielspalte.

Wenn die Zielspalte keinen Standardwert besitzt, versucht COPY, NULL zu laden.

Wenn COPY versucht, einer Spalte NULL zuzuweisen, die als NOT NULL definiert ist, schlägt der COPY-Befehl fehl.

Wenn eine IDENTITY-Spalte in der Spaltenliste enthalten ist, muss auch EXPLICIT_IDS angegeben werden. Wenn keine IDENTITY-Spalte angegeben ist, kann EXPLICIT_IDS nicht angegeben werden. Wenn keine Spaltenliste angegeben ist, verhält sich der Befehl, als ob eine vollständige, reihenfolgegerechte Spaltenliste angegeben ist, wobei IDENTITY-Spalten ausgelassen werden, wenn EXPLICIT_IDS nicht angegeben wurde.

Wenn eine Spalte mit GENERATED BY DEFAULT AS IDENTITY definiert ist, kann sie kopiert werden. Die Werte werden mit den von Ihnen angegebenen Werten generiert oder aktualisiert. Die Option EXPLICIT_IDS ist nicht erforderlich. COPY aktualisiert nicht die Identity High Watermark. Weitere Informationen finden Sie unter GENERATED BY DEFAULT AS IDENTITY.

JSONPaths-Datei

Beim Laden von Daten aus Datendateien im JSON- oder Avro-Format weist COPY die Datenelemente in den JSON- oder Avro-Quelldaten automatisch den Spalten in der Zieltabelle zu. Dies geschieht durch den Abgleich von Feldnamen im Avro-Schema mit den Spaltennamen in der Zieltabelle oder Spaltenliste.

In einigen Fällen werden die Spaltennamen und Feldnamen nicht übereinstimmen oder Sie müssen Zuweisungen tiefer in der Datenhierarchie vornehmen. Um JSON- oder Avro-Datenelemente explizit Spalten zuzuweisen, können Sie eine JSONPaths-Datei verwenden.

Weitere Informationen finden Sie unter JSONPaths-Datei.