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 EMR Amazon-Cluster oder 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 nicht COPY zu einer externen Tabelle wechseln.

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 INSERT Rechte für die Amazon Redshift Redshift-Tabelle.

COPYSyntax

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

Sie können eine COPY Operation mit nur drei Parametern ausführen: einem Tabellennamen, einer Datenquelle und einer Autorisierung für den Zugriff auf die Daten.

Amazon Redshift erweitert die Funktionalität des COPY Befehls, sodass Sie Daten in verschiedenen Datenformaten aus mehreren Datenquellen laden, den Zugriff auf Ladedaten kontrollieren, Datentransformationen verwalten und den Ladevorgang verwalten können.

In den folgenden Abschnitten werden die erforderlichen COPY Befehlsparameter vorgestellt und die optionalen Parameter nach Funktionen 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;

Das folgende Beispiel erstellt eine Tabelle mit dem Namen CATDEMO und lädt dann die Tabelle mit Beispieldaten aus einer Datendatei in Amazon S3 namenscategory_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, die category_pipe.txt im tickit Ordner eines Amazon S3 S3-Buckets mit dem Namen benannt istredshift-downloads. Der COPY Befehl ist autorisiert, über eine AWS Identity and Access Management (IAM) -Rolle auf den Amazon S3 S3-Bucket zuzugreifen. Wenn Ihrem Cluster eine bestehende IAM Rolle mit der Berechtigung für den Zugriff auf Amazon S3 angehängt ist, können Sie den Amazon-Ressourcennamen (ARN) Ihrer Rolle im folgenden COPY Befehl ersetzen und ihn 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 hängt die neuen Eingabedaten an alle vorhandenen Zeilen in der Tabelle an.

FROMDatenquelle

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. Sie können auch Datendateien laden, die sich in einem EMR Amazon-Cluster, einer EC2 Amazon-Instance oder einem Remote-Host befinden, auf den Ihr Cluster über eine SSH Verbindung zugreifen kann, oder Sie können 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, AmazonEMR, Amazon DynamoDB und Amazon. EC2 Sie können diese Autorisierung erteilen, indem Sie auf eine IAM Rolle verweisen, die Ihrem Cluster zugeordnet ist, oder indem Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel für einen Benutzer angeben. IAM

Optionale Parameter

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

Mapping von Spalten

COPYFügt standardmäßig Feldwerte in die Spalten der Zieltabelle in derselben Reihenfolge ein, in der die Felder in den Datendateien vorkommen. Wenn die standardmäßige Spaltenreihenfolge nicht funktioniert, können Sie eine Spaltenliste angeben oder JSONPath Ausdrücke verwenden, um Quelldatenfelder den Zielspalten zuzuordnen.

Datenformatparameter

Sie können Daten aus Textdateien mit fester Breite, durch Zeichen getrennten, kommagetrennten Werten (CSV) oder Formaten oder aus Avro-Dateien laden. JSON

Standardmäßig erwartet der COPY Befehl, dass sich die Quelldaten in durch Zeichen getrennten Textdateien (-8) befinden. UTF 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

Beim Laden der Tabelle wird COPY versucht, die Zeichenfolgen in den Quelldaten implizit 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.

Hinweise zur Verwendung und zusätzliche Ressourcen für den Befehl COPY

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

COPY-Befehlsbeispiele

Weitere Beispiele, die zeigen, wie Sie COPY aus verschiedenen Quellen, in unterschiedlichen Formaten und mit unterschiedlichen COPY Optionen vorgehen können, finden Sie unterCOPYBeispiele.