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

COPY aus Amazon S3

Um Daten aus Dateien zu laden, die sich in einzelnen oder mehreren S3 Buckets befinden, verwenden Sie die FROM-Klausel. Diese Klausel gibt an, wie COPY die Dateien in Amazon S3 sucht. Sie können den Objektpfad zu den Datendateien als Teil der FROM-Klausel bereitstellen oder den Speicherort einer Manifestdatei angeben, die eine Liste von Amazon-S3-Objektpfaden enthält. COPY aus Amazon S3 verwendet eine HTTPS-Verbindung. Stellen Sie sicher, dass die S3-IP-Bereiche zu Ihrer Zulassungsliste hinzugefügt werden. Weitere Informationen zu den erforderlichen S3-IP-Bereichen finden Sie unter Netzwerkisolierung.

Wichtig

Wenn sich die Amazon S3 S3-Buckets, die die Datendateien enthalten, nicht in derselben AWS Region wie Ihr Cluster befinden, müssen Sie den REGION Parameter verwenden, um die Region anzugeben, in der sich die Daten befinden.

Syntax

FROM { 's3://objectpath' | 's3://manifest_file' } authorization | MANIFEST | ENCRYPTED | REGION [AS] 'aws-region' | optional-parameters

Beispiele

Im folgenden Beispiel wird ein Objektpfad verwendet, um Daten aus Amazon S3 zu laden.

copy customer from 's3://DOC-EXAMPLE-BUCKET/customer' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Im folgenden Beispiel wird eine Manifestdatei verwendet, um Daten aus Amazon S3 zu laden.

copy customer from 's3://DOC-EXAMPLE-BUCKET/cust.manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;

Parameter

FROM

Die Quelle der Daten, die geladen werden sollen. Weitere Informationen zur Kodierung der Amazon-S3-Datei finden Sie unter Datenkonvertierungsparameter.

's3://copy_from_s3_objectpath'

Gibt den Pfad zu den Amazon-S3-Objekten an, die die Daten enthalten, z. B. 's3://DOC-EXAMPLE-BUCKET/custdata.txt'. Der Parameter s3://copy_from_s3_objectpath kann eine einzelne Datei, einen Satz von Objekten oder Ordner mit denselben Schlüsselpräfixen referenzieren. Beispielsweise ist der Name custdata.txt ein Schlüsselpräfix, der sich auf eine Anzahl physischer Dateien bezieht: custdata.txt, custdata.txt.1, custdata.txt.2, custdata.txt.bak usw. Das Schlüsselpräfix kann auch eine Anzahl von Ordnern referenzieren. Beispielsweise bezieht sich 's3://DOC-EXAMPLE-BUCKET/custfolder' auf die Ordner custfolder, custfolder_1, custfolder_2 usw. Wenn ein Schlüsselpräfix mehrere Ordner referenziert, werden alle Dateien in den Ordnern geladen. Wenn ein Schlüsselpräfix mit einer Datei und einem Ordner übereinstimmt, beispielsweise custfolder.log, versucht COPY, auch die Datei zu laden. Wenn ein Schlüsselpräfix dazu führen könnte, dass COPY versucht, nicht erwünschte Dateien zu laden, verwenden Sie eine Manifestdatei. Weitere Informationen finden Sie unter copy_from_s3_manifest_file.

Wichtig

Wenn sich der S3-Bucket, der die Datendateien enthält, nicht in derselben AWS Region wie Ihr Cluster befindet, müssen Sie den REGION Parameter verwenden, um die Region anzugeben, in der sich die Daten befinden.

Weitere Informationen finden Sie unter So laden Sie Daten aus Amazon S3.

's3://copy_from_s3_manifest_file'

Gibt den Amazon-S3-Objektschlüssel für eine Manifestdatei an, die die Datendateien auflistet, die geladen werden sollen. Das Argument 's3://copy_from_s3_manifest_file' muss explizit auf eine einzelne Datei verweisen, z. B. 's3://DOC-EXAMPLE-BUCKET/manifest.txt'. Es darf kein Schlüsselpräfix referenzieren.

Das Manifest ist eine Textdatei im JSON-Format, die die URL jeder Datei auflistet, die aus Amazon S3 geladen werden soll. Die URL enthält den Bucket-Namen und den vollständigen Objektpfad für die Datei. Die im Manifest angegebenen Dateien können sich in verschiedenen Buckets befinden, aber alle Buckets müssen sich in derselben AWS Region wie der Amazon Redshift Redshift-Cluster befinden. Wenn eine Datei zweimal aufgelistet wird, wird die Datei zweimal geladen. Im folgenden Beispiel wird der JSON-Code für ein Manifest gezeigt, das drei Dateien lädt.

{ "entries": [ {"url":"s3://DOC-EXAMPLE-BUCKET1/custdata.1","mandatory":true}, {"url":"s3://DOC-EXAMPLE-BUCKET1/custdata.2","mandatory":true}, {"url":"s3://DOC-EXAMPLE-BUCKET2/custdata.1","mandatory":false} ] }

Die doppelten Anführungszeichen sind erforderlich. Es muss sich um normale Anführungszeichen (0x22) handeln. Es dürfen keine schrägen oder „smarten“ Anführungszeichen sein. Jeder Eintrag im Manifest kann optional ein mandatory-Flag enthalten. Wenn mandatory auf true gesetzt ist, wird COPY beendet, wenn der Befehl die Datei für diesen Eintrag nicht findet. Andernfalls wird COPY fortgesetzt. Der Standardwert für den mandatory beträgt false.

Beim Laden aus Datendateien im ORC- oder Parquet-Format ist ein meta-Feld erforderlich, wie im folgenden Beispiel gezeigt.

{ "entries":[ { "url":"s3://DOC-EXAMPLE-BUCKET1/orc/2013-10-04-custdata", "mandatory":true, "meta":{ "content_length":99 } }, { "url":"s3://DOC-EXAMPLE-BUCKET2/orc/2013-10-05-custdata", "mandatory":true, "meta":{ "content_length":99 } } ] }

Die Manifestdatei darf nicht verschlüsselt oder komprimiert sein, auch dann nicht, wenn die Optionen ENCRYPTED, GZIP, LZOP, BZIP2 oder ZSTD angegeben sind. COPY gibt einen Fehler zurück, wenn die angegebene Manifestdatei nicht gefunden wird oder die Manifestdatei nicht korrekt formatiert ist.

Wenn ein Manifestdatei verwendet wird, muss der Parameter MANIFEST für den COPY-Befehl angegeben werden. Wenn der Parameter MANIFEST nicht angegeben ist, nimmt COPY an, dass die für FROM angegebene Datei eine Datendatei ist.

Weitere Informationen finden Sie unter So laden Sie Daten aus Amazon S3.

Autorisierung

Der COPY-Befehl benötigt eine Autorisierung für den Zugriff auf Daten in anderen AWS -Ressourcen, einschließlich Amazon S3, Amazon EMR, Amazon DynamoDB und Amazon EC2. Sie können diese Autorisierung bereitstellen, indem Sie auf eine AWS Identity and Access Management (IAM-) Rolle verweisen, die Ihrem Cluster zugeordnet ist (rollenbasierte Zugriffskontrolle), oder indem Sie die Zugangsdaten für einen Benutzer angeben (schlüsselbasierte Zugriffskontrolle). Um Sicherheit und Flexibilität zu verbessern, wird die Verwendung der IAM-rollenbasierten Zugriffssteuerung empfohlen. Weitere Informationen finden Sie unter Autorisierungsparameter.

MANIFEST

Gibt an, dass ein Manifest verwendet wird, um die Datendateien aufzulisten, die aus Amazon S3 geladen werden sollen. Wenn der Parameter MANIFEST verwendet wird, lädt COPY Daten aus den in dem Manifest aufgelisteten Dateien, das durch 's3://copy_from_s3_manifest_file' referenziert wird. Wenn die Manifestdatei nicht gefunden wird oder nicht korrekt formatiert ist, schlägt COPY fehl. Weitere Informationen finden Sie unter Verwenden eines Manifests für die Angabe von Datendateien.

ENCRYPTED

Eine Klausel, die angibt, dass die Eingabedateien in Amazon S3 mittels clientseitiger Verschlüsselung mit vom Kunden verwalteten Schlüsseln verschlüsselt sind. Weitere Informationen finden Sie unter Laden verschlüsselter Datendateien aus Amazon S3. Geben Sie ENCRYPTED nicht an, wenn die Eingabedateien mittels serverseitiger Amazon S3-Verschlüsselung (SSE-KMS or SSE-S3) verschlüsselt sind. COPY liest serverseitig verschlüsselte Dateien automatisch.

Wenn Sie den Parameter ENCRYPTED angeben, müssen Sie auch den Parameter MASTER_SYMMETRIC_KEY angeben oder den Wert für master_symmetric_key in die Zeichenfolge CREDENTIALS einfügen.

Wenn die verschlüsselten Dateien ein komprimiertes Format aufweisen, fügen Sie den Parameter GZIP, LZOP, BZIP2 oder ZSTD hinzu.

Manifestdateien und JSONPaths-Dateien dürfen nicht verschlüsselt sein, auch dann nicht, wenn die Option ENCRYPTED angegeben ist.

MASTER_SYMMETRIC_KEY 'root_key'

Der symmetrische Root-Schlüssel, der für die Verschlüsselung von Datendateien in Amazon S3 verwendet wurde. Wenn MASTER_SYMMETRIC_KEY angegeben ist, muss auch der Parameter ENCRYPTED angegeben werden. MASTER_SYMMETRIC_KEY kann nicht mit dem Parameter CREDENTIALS verwendet werden. Weitere Informationen finden Sie unter Laden verschlüsselter Datendateien aus Amazon S3.

Wenn die verschlüsselten Dateien ein komprimiertes Format aufweisen, fügen Sie den Parameter GZIP, LZOP, BZIP2 oder ZSTD hinzu.

REGION [AS] 'aws-region'

Gibt die AWS Region an, in der sich die Quelldaten befinden. REGION ist für COPY aus einem Amazon-S3-Bucket oder einer DynamoDB-Tabelle erforderlich, wenn sich die AWS -Ressource, die die Daten enthält, nicht in derselben Region wie der Amazon-Redshift-Cluster befindet.

Der Wert für aws_region muss einer Region entsprechen, die in der Tabelle Amazon-Redshift-Regionen und -Endpunkte aufgeführt ist.

Wenn der Parameter REGION angegeben ist, müssen sich alle Ressourcen in der angegebenen Region befinden, einschließlich einer Manifestdatei oder mehrerer Amazon-S3-Buckets.

Anmerkung

Für die Übertragung von Daten zwischen Regionen werden dem Amazon-S3-Bucket oder der DynamoDB-Tabelle, die die Daten enthält, zusätzliche Gebühren berechnet. Weitere Informationen zu den Preisen finden Sie unter Ausgehende Datenübertragung von Amazon S3 in eine andere AWS Region auf der Amazon S3 S3-Preisseite und Ausgehende Datenübertragung auf der Preisseite von Amazon DynamoDB.

Standardmäßig nimmt COPY an, dass sich die Daten in derselben Region wie der Amazon-Redshift-Cluster befinden.

Optionale Parameter

Sie können für COPY aus Amazon S3 optional die folgenden Parameter angeben:

Nicht unterstützte Parameter

Die folgenden Parameter können Sie für COPY aus Amazon S3 nicht verwenden:

  • SSH

  • READRATIO