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

COPY

Lädt Daten aus Datendateien oder aus einer Amazon-DynamoDB-Tabelle in eine Tabelle. Die Dateien können sich in einem Amazon-Simple-Storage-Service(Amazon S3)-Bucket, einem Amazon-EMR-Cluster oder auf einem Remote-Host befinden, auf den über eine Secure-Shell(SSH)-Verbindung zugegriffen wird.

Anmerkung

Externe Tabellen von Amazon Redshift Spectrum sind schreibgeschützt. Sie können keinen COPY-Vorgang zu einer externen Tabelle ausführen.

Der COPY-Befehl fügt die Eingabedaten als zusätzliche Zeilen an die Tabelle an.

Die maximale Größe einer einzelnen Eingabezeile aus einer beliebigen Quelle beträgt 4 MB.

Erforderliche Berechtigungen

Um den COPY-Befehl verwenden zu können, benötigen Sie das INSERT-Recht für die Amazon-Redshift-Tabelle.

COPY-Syntax

COPY table-name [ column-list ] FROM data_source authorization [ [ FORMAT ] [ AS ] data_format ] [ parameter [ argument ] [, ... ] ]

Sie können COPY-Operationen mit nur drei Parametern ausführen: Tabellenname, Datenquelle und Autorisierung für den Zugriff auf die Daten.

Amazon Redshift erweitert die Funktionalität des COPY-Befehls, damit Sie Daten in verschiedenen Datenformaten aus mehreren Datenquellen laden, den Zugriff auf das Laden von Daten steuern, Datentransformierungen verwalten und die Ladeoperation verwalten können.

In den folgenden Abschnitten werden die erforderlichen Parameter für den COPY-Befehl vorgestellt und die optionalen Parameter nach Funktion gruppiert. Dazu werden die einzelnen Parameter beschrieben und es wird erläutert, wie die verschiedenen Optionen zusammenwirken. Sie können auch anhand der alphabetischen Liste der Parameter direkt zur Parameterbeschreibung wechseln.

Erforderliche Parameter

Der COPY-Befehl erfordert drei Elemente:

Der einfachste COPY-Befehl verwendet das folgende Format.

COPY table-name FROM data-source authorization;

Im folgenden Beispiel wird eine Tabelle namens CATDEMO erstellt. Anschließend wird die Tabelle mit Stichprobendaten aus einer Datendatei in Amazon S3 namens geladen category_pipe.txt.

create table catdemo(catid smallint, catgroup varchar(10), catname varchar(10), catdesc varchar(50));

Im folgenden Beispiel ist die Datenquelle für den COPY-Befehl eine Datendatei namens category_pipe.txt im Ordner tickit eines Amazon-S3-Buckets namens redshift-downloads. Der COPY-Befehl ist autorisiert, über eine AWS Identity and Access Management (IAM-) Rolle auf den Amazon S3 S3-Bucket zuzugreifen. Wenn Ihr Cluster bereits eine IAM-Rolle mit Berechtigung für den Zugriff auf Amazon S3 besitzt, können Sie den Amazon-Ressourcennamen (ARN) Ihrer Rolle im folgenden COPY-Befehl einsetzen und diesen ausführen.

copy catdemo from 's3://redshift-downloads/tickit/category_pipe.txt' iam_role 'arn:aws:iam::<aws-account-id>:role/<role-name>' region 'us-east-1';

Vollständige Anweisungen zur Verwendung von COPY-Befehlen zum Laden von Beispieldaten, einschließlich Anweisungen zum Laden von Daten aus anderen AWS Regionen, finden Sie unter Beispieldaten aus Amazon S3 laden im Amazon Redshift Getting Started Guide.

table-name

Der Name der Zieltabelle für den COPY-Befehl. Die Tabelle muss in der Datenbank bereits vorhanden sein. Die Tabelle kann temporär oder persistent sein. Der COPY-Befehl fügt die neuen Eingabedaten den vorhandenen Zeilen in der Tabelle an.

FROM data-source

Der Speicherort der Quelldaten, die in die Zieltabelle geladen werden sollen. Bei manchen Datenquellen kann eine Manifestdatei angegeben werden.

Das am häufigsten verwendete Daten-Repository sind Amazon-S3-Buckets. Außerdem können Sie Daten aus Datendateien laden, die sich in einem Amazon-EMR-Cluster, einer Amazon-EC2-Instance oder auf einem Remote-Host befinden, auf den Ihr Cluster über eine SSH-Verbindung zugreifen kann. Sie können Daten auch direkt aus einer DynamoDB-Tabelle laden.

Autorisierung

Eine Klausel, die die Methode angibt, die Ihr Cluster für die Authentifizierung und Autorisierung für den Zugriff auf andere AWS Ressourcen verwendet. Der COPY-Befehl benötigt eine Autorisierung, um auf Daten in einer anderen AWS Ressource zuzugreifen, einschließlich in Amazon S3, Amazon EMR, Amazon DynamoDB und Amazon EC2. Sie können diese Autorisierung bereitstellen, indem Sie eine IAM-Rolle referenzieren, die Ihrem Cluster angefügt ist, oder indem Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel für einen IAM-Benutzer bereitstellen.

Optionale Parameter

Sie können optional angeben, wie COPY den Spalten in der Zieltabelle Felddaten zuweist, Quelldatenattribute definieren, damit der COPY-Befehl die Quelldaten korrekt lesen und analysieren kann, und festlegen, welche Operation der COPY-Befehl während des Ladevorgangs ausführt.

Mapping von Spalten

Standardmäßig fügt COPY Feldwerte 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.

Datenformatparameter

Sie können Daten aus Textdateien in einem Format mit fester Breite, in einem Format mit Trennzeichen, in einem durch Komma getrennten Format (CSV) oder im JSON-Format laden. Sie können Daten auch aus Avro-Dateien laden.

Standardmäßig geht der COPY-Befehl davon aus, dass sich die Quelldaten in UTF-8-Textdateien mit Trennzeichen befinden. Das Standardtrennzeichen ist der senkrechte Strich (|). Wenn sich die Quelldaten in einem anderen Format befinden, verwenden Sie die folgenden Parameter, um das Datenformat anzugeben.

Datenkonvertierungsparameter

Wenn COPY die Tabelle lädt, versucht der Befehl implizit, die Zeichenfolgen in den Quelldaten in den Datentyp der Zielspalte zu konvertieren. Wenn Sie eine Konvertierung angeben müssen, die sich vom Standardverhalten unterscheidet, oder wenn die Standardkonvertierung zu Fehlern führt, können Sie Datenkonvertierungen verwalten, indem Sie die folgenden Parameter angeben.

Datenladeoperationen

Verwalten Sie das Standardverhalten der Ladeoperation, um Fehler zu beheben oder die Ladezeiten zu reduzieren, indem Sie die folgenden Parameter angeben.

Nutzungshinweise und zusätzliche Ressourcen für den Befehl COPY

Weitere Informationen zur Verwendung des COPY-Befehls finden Sie in den folgenden Themen:

Befehlsbeispiele

Weitere Beispiele, die zeigen, wie aus verschiedenen Quellen, in unterschiedlichen Formaten und mit unterschiedlichen COPY-Optionen KOPIERT wird, finden Sie unter Beispiele für COPY.