Verwenden des COPY Befehls zum Laden von Amazon S3 - 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.

Verwenden des COPY Befehls zum Laden von Amazon S3

Verwenden Sie den COPY-Befehl, um eine Tabelle parallel aus Datendateien in Amazon S3 zu laden. Sie können die Dateien, die geladen werden sollen, durch Verwendung eines Amazon-S3-Objektpräfixes oder einer Manifestdatei angeben.

Die Syntax für die Angabe der Dateien, die unter Verwendung eines Präfixes geladen werden sollen, ist wie folgt:

COPY <table_name> FROM 's3://<bucket_name>/<object_prefix>' authorization;

Die Manifestdatei ist eine Datei im JSON -Format, die die zu ladenden Datendateien auflistet. Die Syntax für die Angabe der Dateien, die unter Verwendung einer Manifestdatei geladen werden sollen, ist wie folgt:

COPY <table_name> FROM 's3://<bucket_name>/<manifest_file>' authorization MANIFEST;

Die Tabelle, die geladen werden soll, muss in der Datenbank bereits vorhanden sein. Informationen zum Erstellen einer Tabelle finden Sie CREATE TABLE in der SQL Referenz.

Die Werte für die Autorisierung stellen die AWS Autorisierung bereit, die Amazon Redshift für den Zugriff auf die Amazon S3 S3-Objekte benötigt. Weitere Informationen zu den erforderlichen Berechtigungen finden Sie unter IAMBerechtigungen für COPYUNLOAD, und CREATE LIBRARY. Die bevorzugte Methode für die Authentifizierung besteht darin, den ROLE Parameter IAM _ und den Amazon-Ressourcennamen (ARN) für eine IAM Rolle mit den erforderlichen Berechtigungen anzugeben. Weitere Informationen finden Sie unter Rollenbasierte Zugriffskontrolle.

Um sich mit dem ROLE Parameter IAM _ zu authentifizieren, ersetzen Sie <aws-account-id> and <role-name> wie in der folgenden Syntax gezeigt.

IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name>'

Das folgende Beispiel zeigt die Authentifizierung mithilfe einer IAM Rolle.

COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Weitere Informationen zu anderen Autorisierungsoptionen finden Sie unter . Autorisierungsparameter

Wenn Sie Ihre Daten überprüfen möchten, ohne die Tabelle tatsächlich zu laden, verwenden Sie die NOLOAD Option mit dem COPY Befehl.

Das folgende Beispiel zeigt die ersten wenigen Zeilen mit durch Pipe-Zeichen getrennten Daten in einer Datei namens venue.txt.

1|Toyota Park|Bridgeview|IL|0 2|Columbus Crew Stadium|Columbus|OH|0 3|RFK Stadium|Washington|DC|0

Bevor Sie die Datei auf Amazon S3 hochladen, teilen Sie die Datei in mehrere Dateien auf, sodass der COPY Befehl sie mithilfe der Parallelverarbeitung laden kann. Die Anzahl der Dateien sollte ein Vielfaches der Anzahl der Slices in Ihrem Cluster sein. Teilen Sie Ihre Ladedatendateien, so dass die Dateien etwa gleich groß sind, zwischen 1 MB und 1 GB nach der Kompression. Weitere Informationen finden Sie unter Laden von Daten aus komprimierten und unkomprimierten Dateien.

Beispielsweise kann die Datei venue.txt wie folgt in vier Dateien aufgeteilt werden:

venue.txt.1 venue.txt.2 venue.txt.3 venue.txt.4

Der folgende COPY Befehl lädt die VENUE Tabelle mithilfe der durch Pipe getrennten Daten in den Datendateien mit dem Präfix 'venue' im Amazon S3 S3-Bucket. amzn-s3-demo-bucket

Anmerkung

Der Amazon-S3-Bucket amzn-s3-demo-bucket in den folgenden Beispiele ist nicht vorhanden. COPYBeispielbefehle, die echte Daten in einem vorhandenen Amazon S3 S3-Bucket verwenden, finden Sie unter Beispieldaten laden.

COPY venue FROM 's3://amzn-s3-demo-bucket/venue' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' DELIMITER '|';

Wenn keine Amazon-S3-Objekte mit dem Schlüsselpräfix „venue“ vorhanden sind, schlägt der Ladevorgang fehl.