

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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 aus Amazon S3
<a name="t_loading-tables-from-s3"></a>

Verwenden Sie den [COPY](r_COPY.md)-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 Datendateien auflistet, die geladen werden sollen. 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 unter [CREATE TABLE](r_CREATE_TABLE_NEW.md) 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 [IAM-Berechtigungen für COPY, UNLOAD und CREATE LIBRARY](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions). Die bevorzugte Methode für die Authentifizierung besteht in der Angabe des Parameters IAM\$1ROLE und des Amazon-Ressourcennamens (ARN) für eine IAM-Rolle mit den notwendigen Berechtigungen. Weitere Informationen finden Sie unter [Rollenbasierte Zugriffskontrolle](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based) . 

Um sich mit dem Parameter IAM\$1ROLE zu authentifizieren, ersetzen Sie *<aws-account-id>* und *<role-name>* wie in der folgenden Syntax dargestellt. 

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

Das folgende Beispiel zeigt die Authentifizierung unter Verwendung 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](copy-parameters-authorization.md)

Wenn Sie Ihre Daten validieren möchten, ohne die Tabelle tatsächlich zu laden, verwenden Sie die Option NOLOAD mit dem Befehl [COPY](r_COPY.md).

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 zu Amazon S3 hochladen, teilen Sie die Datei in mehrere Dateien auf, sodass der Befehl COPY diese unter Verwendung der Parallelverarbeitung hochladen 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](t_splitting-data-files.md).

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 Tabelle VENUE mittels der durch Pipe-Zeichen getrennten Daten in den Datendateien mit dem Präfix „venue“ im Amazon-S3-Bucket `amzn-s3-demo-bucket`. 

**Anmerkung**  
Der Amazon-S3-Bucket `amzn-s3-demo-bucket` in den folgenden Beispiele ist nicht vorhanden. Beispiele für COPY-Befehle, die echte Daten in einem vorhandenen Amazon-S3-Bucket verwenden, finden Sie unter [Load sample data](https://docs.aws.amazon.com/redshift/latest/gsg/cm-dev-t-load-sample-data.html) (Beispieldateien 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.

**Topics**
+ [Verwenden eines Manifests für die Angabe von Datendateien](loading-data-files-using-manifest.md)
+ [Laden komprimierter Datendateien aus Amazon S3](t_loading-gzip-compressed-data-files-from-S3.md)
+ [Laden von Daten mit fester Breite aus Amazon S3](t_loading_fixed_width_data.md)
+ [Laden von Multibyte-Daten aus Amazon S3](t_loading_unicode_data.md)
+ [Laden verschlüsselter Datendateien aus Amazon S3](c_loading-encrypted-files.md)

# Verwenden eines Manifests für die Angabe von Datendateien
<a name="loading-data-files-using-manifest"></a>

Sie können ein Manifest verwenden, um sicherzustellen, dass bei Verwendung des COPY-Befehls während eines Datenladevorgangs alle erforderlichen Dateien und nur diese geladen werden. Sie können ein Manifest verwenden, um Dateien aus verschiedenen Buckets hochzuladen oder Dateien, die nicht das gleiche Präfix verwenden. Statt einen Objektpfad für den COPY-Befehl anzugeben, stellen Sie den Namen einer Textdatei im JSON-Format bereit, in der die Dateien, die hochgeladen werden sollen, explizit aufgelistet werden. Die URL im Manifest muss den Bucket-Namen und den vollständigen Objektpfad für die Datei angeben, nicht nur ein Präfix.

Weitere Informationen zu Manifestdateien finden Sie im COPY-Beispiel unter [Verwenden eines Manifests für die Angabe von Datendateien](r_COPY_command_examples.md#copy-command-examples-manifest)

Das folgende Beispiel zeigt das JSON-Format, um Dateien aus verschiedenen Buckets hochzuladen, deren Namen mit Datumsstempeln beginnen.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket1/2013-10-04-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket1/2013-10-05-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/2013-10-04-custdata", "mandatory":true},
    {"url":"s3://amzn-s3-demo-bucket2/2013-10-05-custdata", "mandatory":true}
  ]
}
```

Das optionale `mandatory`-Flag gibt an, ob COPY einen Fehler zurückgeben soll, wenn die Datei nicht gefunden wird. Der Standardwert von `mandatory` ist `false`. Unabhängig von obligatorischen Einstellungen wird COPY beendet, wenn keine Dateien gefunden werden. 

Im folgenden Beispiel wird der COPY-Befehl mit dem Manifest aus dem vorherigen Beispiel ausgeführt, dessen Name ist `cust.manifest`. 

```
COPY customer
FROM 's3://amzn-s3-demo-bucket/cust.manifest' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
MANIFEST;
```

## Verwenden eines mit UNLOAD erstellten Manifests
<a name="loading-data-files-using-unload-manifest"></a>

Ein mit einem [UNLOAD](r_UNLOAD.md)-Vorgang und dem MANIFEST-Parameter erstelltes Manifest kann Schlüssel enthalten, die für den COPY-Vorgang nicht benötigt werden. Das folgende `UNLOAD`-Manifest enthält beispielsweise einen `meta`-Schlüssel, der von einer externen Amazon-Redshift-Spectrum-Tabelle und zum Laden von Dateien im Dateiformat `ORC` oder `Parquet` benötigt wird. Der `meta`-Schlüssel enthält einen `content_length`-Schlüssel mit einem Wert, der der tatsächlichen Größe der Datei in Bytes entspricht. Für den COPY-Vorgang sind jedoch nur der `url`-Schlüssel und ein optionaler `mandatory`-Schlüssel erforderlich.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/unload/manifest_0000_part_00", "meta": { "content_length": 5956875 }},
    {"url":"s3://amzn-s3-demo-bucket/unload/unload/manifest_0001_part_00", "meta": { "content_length": 5997091 }}
 ]
}
```

Weitere Informationen zu Manifestdateien finden Sie unter [Verwenden eines Manifests für die Angabe von Datendateien](r_COPY_command_examples.md#copy-command-examples-manifest).

# Laden komprimierter Datendateien aus Amazon S3
<a name="t_loading-gzip-compressed-data-files-from-S3"></a>

Um Datendateien zu laden, die mit gzip, lzop oder bzip2 komprimiert wurden, schließen Sie die entsprechende Option ein: GZIP, LZOP oder. BZIP2

Der folgende Befehl lädt beispielsweise Daten aus Dateien, die mittels lzop komprimiert wurden.

```
COPY customer FROM 's3://amzn-s3-demo-bucket/customer.lzo' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
DELIMITER '|' LZOP;
```

**Anmerkung**  
Wenn Sie eine Datendatei mit lzop-Komprimierung komprimieren und die Option *--filter* verwenden, unterstützt der COPY-Befehl dies nicht.

# Laden von Daten mit fester Breite aus Amazon S3
<a name="t_loading_fixed_width_data"></a>

Die Datenspalten in Datendateien mit fester Breite haben einheitliche Längen. Jedes Feld in einer Datendatei mit fester Breite besitzt genau dieselbe Länge und Position. Im Fall von Zeichendaten (CHAR und VARCHAR) in einer Datendatei mit fester Breite müssen Sie am Anfang und am Ende Leerzeichen als Platzhalter verwenden, um die einheitliche Breite einzuhalten. Im Fall von Ganzzahlen müssen Sie am Anfang Nullen als Platzhalter verwenden. Eine Datendatei mit fester Breite verwendet keine Trennzeichen, um Spalten zu trennen.

Um eine Datendatei mit fester Breite in eine vorhandene Tabelle zu laden, verwenden Sie den Parameter FIXEDWIDTH im COPY-Befehl. Die Tabellenspezifikationen müssen dem Wert von fixedwidth\$1spec entsprechen, damit die Daten korrekt geladen werden.

Um Daten mit fester Breite aus einer Datei in eine Tabelle zu laden, geben Sie den folgenden Befehl aus:

```
COPY table_name FROM 's3://amzn-s3-demo-bucket/prefix' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' 
FIXEDWIDTH 'fixedwidth_spec';
```

Der Parameter *fixedwidth\$1spec* ist eine Zeichenfolge, die einen Bezeichner für jede Spalte und die Breite jeder Spalte enthält, getrennt durch einen Punkt. Die **column:width**-Paare werden durch Komma getrennt. Der Bezeichner kann von Ihnen frei gewählt werden: Zahlen, Buchstaben oder eine Kombination aus diesen. Der Bezeichner hat keine Beziehung zur Tabelle selbst. Daher muss die Spezifikation die Spalten in derselben Reihenfolge wie die Tabelle enthalten.

Die folgenden beiden Beispiele zeigen dieselbe Spezifikation, wobei die erste numerische Bezeichner und die zweite Zeichenfolgenbezeichner verwendet:

```
'0:3,1:25,2:12,3:2,4:6'
```

```
'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'
```

Im folgenden Beispiel sind Beispieldaten mit fester Breite zu sehen, die unter Verwendung der oben aufgeführten Spezifikationen in die Tabelle VENUE geladen werden könnten:

```
1  Toyota Park               Bridgeview  IL0
2  Columbus Crew Stadium     Columbus    OH0
3  RFK Stadium               Washington  DC0
4  CommunityAmerica Ballpark Kansas City KS0
5  Gillette Stadium          Foxborough  MA68756
```

Der folgende COPY-Befehl lädt diesen Datensatz in die Tabelle VENUE:

```
COPY venue
FROM 's3://amzn-s3-demo-bucket/data/venue_fw.txt' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' 
FIXEDWIDTH 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6';
```

# Laden von Multibyte-Daten aus Amazon S3
<a name="t_loading_unicode_data"></a>

Wenn Ihre Daten Multibyte-Zeichen enthalten, die andere als ASCII-Zeichen verwenden (beispielsweise chinesische oder kyrillische Zeichen), müssen Sie die Daten in VARCHAR-Spalten laden. Der VARCHAR-Datentyp unterstützt UTF-8-Zeichen mit vier Bytes. Der CHAR-Datentyp unterstützt jedoch nur ASCII-Zeichen mit einem Byte. Sie können keine Zeichen mit fünf Bytes oder mehr in Amazon-Redshift-Tabellen laden. Weitere Informationen zu CHAR und VARCHAR finden Sie unter [Datentypen](c_Supported_data_types.md).

Um zu prüfen, welche Kodierung von einer Eingabedatei verwendet wird, verwenden Sie den Linux-Befehl *`file`*. 

```
$ file ordersdata.txt
ordersdata.txt: ASCII English text
$ file uni_ordersdata.dat
uni_ordersdata.dat: UTF-8 Unicode text
```

# Laden verschlüsselter Datendateien aus Amazon S3
<a name="c_loading-encrypted-files"></a>

Sie können den COPY-Befehl verwenden, um Datendateien zu laden, die unter Verwendung der serverseitigen Verschlüsselung, der clientseitigen Verschlüsselung oder beider Verschlüsselungen zu Amazon S3 hochgeladen wurden. 

Der COPY-Befehl unterstützt die folgenden Amazon S3-Verschlüsselungsarten:
+ Serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)
+  AWS KMS keys Serverseitige Verschlüsselung mit (SSE-KMS)
+ Clientseitige Verschlüsselung mittels eines clientseitigen symmetrischen Root-Schlüssels

Der COPY-Befehl unterstützt nicht die folgenden Amazon S3-Verschlüsselungsarten:
+ Serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)
+ Clientseitige Verschlüsselung mit einem AWS KMS key
+ Clientseitige Verschlüsselung mittels eines vom Kunden bereitgestellten asymmetrischen Root-Schlüssels

Weitere Informationen zur Amazon-S3-Verschlüsselung finden Sie unter [Schützen von Daten mithilfe serverseitiger Verschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) und [Schützen von Daten mithilfe clientseitiger Verschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html) im Benutzerhandbuch von Amazon Simple Storage Service.

Der Befehl [UNLOAD](r_UNLOAD.md) verschlüsselt Dateien automatisch mittels SSE-S3. Sie können zum Entladen auch SSE-KMS oder eine clientseitige Verschlüsselung mit einem vom Kunden verwalteten symmetrischen Schlüssel verwenden. Weitere Informationen finden Sie unter [Entladen verschlüsselter Datendateien](t_unloading_encrypted_files.md).

Der COPY-Befehl erkennt automatisch Dateien, die mit SSE-S3 und SSE-KMS verschlüsselt wurden, und lädt diese. Sie können Dateien, die mit einem clientseitigen symmetrischen Root-Schlüssel verschlüsselt wurden, durch Angabe der Option ENCRYPTED und des Schlüssel-Werts laden. Weitere Informationen finden Sie unter [Hochladen verschlüsselter Daten in Amazon S3](t_uploading-encrypted-data.md).

Um clientseitig verschlüsselte Datendateien zu laden, stellen Sie unter Verwendung des Parameters MASTER\$1SYMMETRIC\$1KEY den Root-Schlüsselwert bereit und schließen die Option ENCRYPTED ein.

```
COPY customer FROM 's3://amzn-s3-demo-bucket/encrypted/customer' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
MASTER_SYMMETRIC_KEY '<root_key>' 
ENCRYPTED
DELIMITER '|';
```

Um verschlüsselte Datendateien zu laden, die gzip-, lzop- oder bzip2-komprimiert sind, fügen Sie die Option GZIP, LZOP oder zusammen mit dem Stammschlüsselwert und der BZIP2 Option ENCRYPTED hinzu.

```
COPY customer FROM 's3://amzn-s3-demo-bucket/encrypted/customer' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
MASTER_SYMMETRIC_KEY '<root_key>'
ENCRYPTED 
DELIMITER '|' 
GZIP;
```