

 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.

# So laden Sie Daten aus Amazon S3
<a name="t_Loading-data-from-S3"></a>

Der Befehl COPY nutzt die massive Parallelverarbeitungsarchitektur (Massively Parallel Processing, MPP) von Amazon Redshift, um Daten parallel aus einer Datei oder mehreren Dateien in einem Amazon S3 Bucket zu lesen und zu laden. Sie können maximal von der Parallelverarbeitung profitieren, indem Sie Ihre Daten in mehrere Dateien aufteilen, wenn die Dateien komprimiert sind. (Es gibt Ausnahmen von dieser Regel. Diese werden unter [Laden von Datendateien](https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-use-multiple-files.html) ausführlich beschrieben.) Sie können auch maximal von der Parallelverarbeitung profitieren, indem Sie für Ihre Tabellen Verteilungsschlüssel festlegen. Weitere Informationen zu Verteilungsschlüsseln finden Sie unter [Datenverteilung zur Abfrageoptimierung](t_Distributing_data.md). 

Die Daten werden Zeile für Zeile in die Zieltabelle geladen. Die Felder in der Datendatei stimmen mit den Tabellenspalten von links nach rechts überein. Die Felder in den Datendateien können eine feste Breite oder durch Zeichen abgetrennt sein. Das Standardtrennzeichen ist das Pipe-Zeichen (\$1). Standardmäßig werden alle Tabellenspalten geladen. Sie können jedoch optional eine durch Komma getrennte Liste von Spalten definieren. Wenn eine Tabellenspalte nicht in der Liste der Spalten enthalten ist, die im COPY-Befehl angegeben ist, wird sie mit einem Standardwert geladen. Weitere Informationen finden Sie unter [Laden von Standardspaltenwerten](c_loading_default_values.md).

**Topics**
+ [Laden von Daten aus komprimierten und unkomprimierten Dateien](t_splitting-data-files.md)
+ [Hochladen von Dateien zu Amazon S3 zur Verwendung mit COPY](t_uploading-data-to-S3.md)
+ [Verwenden des COPY-Befehls zum Laden aus Amazon S3](t_loading-tables-from-s3.md)

# Laden von Daten aus komprimierten und unkomprimierten Dateien
<a name="t_splitting-data-files"></a>

Wenn Sie komprimierte Daten laden, empfehlen wir, die Daten für jede Tabelle in mehrere Dateien aufzuteilen. Wenn Sie unkomprimierte, getrennte Daten laden, verwendet der COPY-Befehl die massiv parallele Verarbeitung (MPP) und Scanbereiche, um Daten aus großen Dateien in einen Amazon S3 Bucket zu laden.

## Laden von Daten aus mehreren komprimierten Dateien
<a name="t_splitting-data-files-compressed"></a>

In Fällen, in denen Sie komprimierte Daten haben, empfehlen wir, die Daten für jede Tabelle in mehrere Dateien aufzuteilen. Der COPY-Befehl kann Daten aus mehreren Dateien parallel laden. Sie können mehrere Dateien durch die Angabe eines gemeinsamen Präfixes bzw. *Präfixschlüssels* für den Satz oder durch die explizite Auflistung der Dateien in einer Manifestdatei laden.

Teilen Sie die Daten so in Dateien auf, dass die Anzahl der Dateien ein Vielfaches der Anzahl der Slices in Ihrem Cluster ist. Auf diese Weise kann Amazon Redshift die Daten gleichmäßig über die Slices verteilen. Die Anzahl der Slices pro Knoten ist von der Knotengröße des Clusters abhängig. Beispielsweise besitzt jeder Datenverarbeitungsknoten des Typs dc2.large zwei Slices. Jeder Datenverarbeitungsknoten des Typs dc2.8xlarge hat 16 Slices. Weitere Informationen zur Anzahl der Slices für die einzelnen Knotengrößen finden Sie unter [About Clusters and Nodes](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes) (Informationen zu Clustern und Knoten) im *Managementleitfaden zu Amazon Redshift*. 

Die Knoten sind alle an der parallelen Abfrageausführung beteiligt und arbeiten mit Daten, die so gleichmäßig wie möglich über die Slices verteilt sind. Wenn Sie über einen Cluster mit zwei dc2.large-Knoten verfügen, können Sie Ihre Daten in vier Dateien oder ein Vielfaches von vier teilen. Amazon Redshift berücksichtigt die Dateigröße beim Aufteilen des Workloads nicht. Deshalb müssen Sie dafür sorgen, dass die Dateien ungefähr die gleiche Größe haben, nach der Komprimierung von 1 MB bis 1 GB. 

Wenn Sie Objektpräfixe zur Bezeichnung der Ladedateien verwenden möchten, benennen Sie die einzelnen Dateien mit einem gemeinsamen Präfix. Beispielsweise können Sie die Datei `venue.txt` wie folgt in vier Dateien aufteilen.

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

Wenn Sie mehrere Dateien in einen Ordner in Ihrem Bucket ablegen und den Ordnernamen als Präfix angeben, lädt COPY alle Dateien in diesem Ordner. Wenn Sie die Dateien, die geladen werden sollen, explizit in einer Manifestdatei auflisten, können sich die Dateien in verschiedenen Buckets oder Ordnern befinden.

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 von Daten aus unkomprimierten, getrennten Dateien
<a name="t_splitting-data-files-uncompressed"></a>

Wenn Sie unkomprimierte, getrennte Daten laden, verwendet der COPY-Befehl die Architektur für die massiv parallele Verarbeitung (Massively Parallel Processing, MPP) in Amazon Redshift. Amazon Redshift verwendet automatisch parallel arbeitende Slices, um Datenbereiche aus einer großen Datei in einen Amazon S3 Bucket zu laden. Die Datei muss getrennt sein, damit ein paralleles Laden stattfindet. Zum Beispiel durch Pipe-Zeichen (\$1) getrennt. Das automatische, parallele Laden von Daten mit dem Befehl COPY ist auch für CSV-Dateien verfügbar. Sie können auch von der Parallelverarbeitung profitieren, indem Sie für Ihre Tabellen Verteilungsschlüssel festlegen. Weitere Informationen zu Verteilungsschlüsseln finden Sie unter [Datenverteilung zur Abfrageoptimierung](t_Distributing_data.md).

Das automatische, parallele Laden von Daten wird nicht unterstützt, wenn die COPY-Abfrage eines der folgenden Schlüsselwörter enthält: ESCAPE, REMOVEQUOTES und FIXEDWIDTH.

Die Daten aus der Datei oder den Dateien werden Zeile für Zeile in die Zieltabelle geladen. Die Felder in der Datendatei stimmen mit den Tabellenspalten von links nach rechts überein. Die Felder in den Datendateien können eine feste Breite oder durch Zeichen abgetrennt sein. Das Standardtrennzeichen ist das Pipe-Zeichen (\$1). Standardmäßig werden alle Tabellenspalten geladen. Sie können jedoch optional eine durch Komma getrennte Liste von Spalten definieren. Wenn eine Tabellenspalte nicht in der Liste der Spalten enthalten ist, die im COPY-Befehl angegeben ist, wird sie mit einem Standardwert geladen. Weitere Informationen finden Sie unter [Laden von Standardspaltenwerten](c_loading_default_values.md).

Befolgen Sie für das Laden von Daten aus Amazon S3 diesen allgemeinen Prozess, wenn Ihre Daten unkomprimiert und getrennt sind:

1. Laden Sie Ihre Dateien in Amazon S3 hoch.

1. Führen Sie einen COPY-Befehl aus, um die Tabelle zu laden. 

1. Überprüfen Sie, ob die Daten korrekt geladen wurden.

Beispiele für COPY-Befehle finden Sie unter [Beispiele für COPY](r_COPY_command_examples.md). Weitere Informationen zu Daten, die in Amazon Redshift geladen wurden, finden Sie in den [STL\$1LOAD\$1COMMITS](r_STL_LOAD_COMMITS.md)- und [STL\$1LOAD\$1ERRORS](r_STL_LOAD_ERRORS.md)-Systemtabellen. 

Weitere Informationen zu Knoten und den darin enthaltenen Slices finden Sie unter [Informationen zu Clustern und Knoten](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-about-clusters-and-nodes) im *Amazon-Redshift-Verwaltungshandbuch*.

# Hochladen von Dateien zu Amazon S3 zur Verwendung mit COPY
<a name="t_uploading-data-to-S3"></a>

Beim Hochladen von Textdateien auf Amazon S3 gibt es mehrere verschiedene Ansätze:
+ Wenn Sie komprimierte Dateien haben, wird empfohlen, große Dateien aufzuteilen, um von den Vorteilen der Parallelverarbeitung in Amazon Redshift zu profitieren.
+ Andererseits teilt COPY automatisch große, unkomprimierte, durch Text getrennte Dateidaten auf, um die Parallelität zu erleichtern und die Daten effektiv aus großen Dateien zu verteilen.

Erstellen Sie einen Amazon S3 Bucket für Ihre Datendateien und laden Sie anschließend die Datendateien zum Bucket hoch. Weitere Informationen zum Erstellen von Buckets und Hochladen von Dateien finden Sie unter [Arbeiten mit Amazon S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) im *Benutzerhandbuch von Amazon Simple Storage Service.* 

**Wichtig**  
Der Amazon-S3-Bucket, der die Datendateien enthält, muss in derselben AWS -Region wie Ihr Cluster erstellt werden, es sei denn, Sie verwenden die Option [REGION](copy-parameters-data-source-s3.md#copy-region), um die Region anzugeben, in der sich der Amazon-S3-Bucket befindet.

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](https://docs.aws.amazon.com//redshift/latest/mgmt/security-network-isolation.html#network-isolation).

Sie können einen Amazon-S3-Bucket in einer bestimmten Region erstellen, indem Sie entweder bei der Erstellung des Buckets die Region über die Amazon-S3-Konsole auswählen oder indem Sie einen Endpunkt angeben, wenn Sie den Bucket mithilfe der Amazon-S3-API oder -CLI erstellen.

Überprüfen Sie nach dem Laden der Daten, ob sich die korrekten Dateien in Amazon S3 befinden.

**Topics**
+ [Verwalten der Datenkonsistenz](managing-data-consistency.md)
+ [Hochladen verschlüsselter Daten in Amazon S3](t_uploading-encrypted-data.md)
+ [Überprüfen, ob sich die korrekten Dateien in Ihrem Bucket befinden](verifying-that-correct-files-are-present.md)

# Verwalten der Datenkonsistenz
<a name="managing-data-consistency"></a>

Amazon S3 bietet eine hohe read-after-write Konsistenz für COPY-, UNLOAD-, INSERT- (externe Tabelle), CREATE EXTERNAL TABLE AS- und Amazon Redshift Spectrum Spectrum-Operationen auf Amazon S3 S3-Buckets in allen Regionen. AWS Darüber hinaus sind Lesevorgänge in Amazon S3 Select, Amazon-S3-Zugriffskontrolllisten, Amazon-S3-Objekt-Markierungen und Objekt-Metadaten (z. B. HEAD-Objekt) stark konsistent. Ausführlichere Informationen zur Datenkonsistenz finden Sie unter [Amazon-S3- Datenkonsistenzmodell](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Introduction.html#ConsistencyModel) im *Benutzerhandbuch von Amazon Simple Storage Service*.

# Hochladen verschlüsselter Daten in Amazon S3
<a name="t_uploading-encrypted-data"></a>

Amazon S3 unterstützt sowohl die serverseitige als auch die clientseitige Verschlüsselung. In diesem Thema werden die Unterschiede zwischen serverseitiger und clientseitiger Verschlüsselung behandelt und die Schritte beschrieben, die Sie ausführen müssen, um für Amazon Redshift die clientseitige Verschlüsselung zu verwenden. Die serverseitige Verschlüsselung ist für Amazon Redshift transparent. 

## Server-side encryption
<a name="server-side-encryption"></a>

Die serverseitige Verschlüsselung betrifft die Datenverschlüsselung in Ruhe , das heißt, Amazon S3 verschlüsselt Ihre Daten, während es sie in seine Rechenzentren schreibt, und entschlüsselt sie für Sie, wenn Sie darauf zugreifen. Wenn Sie Tabellen mittels eines COPY-Befehls laden, gibt es in Bezug auf die Art und Weise des Ladens aus serverseitig verschlüsselten oder nicht verschlüsselten Objekten in Amazon S3 keinen Unterschied. Weitere Informationen zur Datenverschlüsselung mittels serverseitiger Verschlüsselung finden Sie unter [Verwendung serverseitiger Verschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) im *Benutzerhandbuch von Amazon Simple Storage Service*.

## Clientseitige Verschlüsselung
<a name="client-side-encryption"></a>

Bei der clientseitigen Verschlüsselung verwaltet Ihre Clientanwendung die Verschlüsselung Ihrer Daten, die Verschlüsselungsschlüssel und die entsprechenden Tools. Sie können Daten unter Verwendung einer clientseitigen Verschlüsselung zu einem Amazon S3 Bucket hochladen und die Daten anschließend mittels des Befehls COPY mit der Option ENCRYPTED und eines privaten Verschlüsselungsschlüssels laden, um größere Sicherheit zu erzielen.

Sie verschlüsseln Ihre Daten mittels einer Envelope-Verschlüsselung. Mittels einer *Envelope-Verschlüsselung* verarbeitet ausschließlich Ihre Anwendung die gesamte Verschlüsselung. Ihre privaten Verschlüsselungsschlüssel und Ihre unverschlüsselten Daten werden niemals an Dritte gesendet. Daher ist es sehr wichtig AWS, dass Sie Ihre Verschlüsselungsschlüssel sicher verwalten. Wenn Sie Ihre Verschlüsselungsschlüssel verlieren, können Sie Ihre Daten nicht mehr entschlüsseln, und Sie können Ihre Verschlüsselungsschlüssel von nicht wiederherstellen. AWS Die Envelope-Verschlüsselung kombiniert die Leistung einer schnellen symmetrischen Verschlüsselung mit der größeren Sicherheit, die eine Schlüsselverwaltung mit asymmetrischen Schlüsseln bietet. Ein one-time-use symmetrischer Schlüssel (der symmetrische Envelope-Schlüssel) wird von Ihrem Amazon S3-Verschlüsselungsclient generiert, um Ihre Daten zu verschlüsseln. Anschließend wird dieser Schlüssel mit Ihrem Root-Schlüssel verschlüsselt und zusammen mit Ihren Daten in Amazon S3 gespeichert. Wenn Amazon Redshift während eines Ladevorgangs auf Ihre Daten zugreift, wird der verschlüsselte symmetrische Schlüssel abgerufen und mit Ihrem echten Schlüssel entschlüsselt. Anschließend werden die Daten entschlüsselt.

Um in Amazon Redshift mit clientseitig verschlüsselten Amazon-S3-Daten zu arbeiten, befolgen Sie die in [Schutz von Daten mittels clientseitiger Verschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html) im *Benutzerhandbuch von Amazon Simple Storage Service* beschriebenen Schritte. Zusätzlich müssen Sie Folgendes verwenden:
+ **Symmetrische Verschlüsselung** Die Klasse AWS SDK for Java `AmazonS3EncryptionClient` verwendet die zuvor beschriebene Envelope-Verschlüsselung, die auf einer symmetrischen Schlüsselverschlüsselung basiert. Verwenden Sie diese Klasse, um einen Amazon-S3-Client für das Hochladen von clientseitig verschlüsselten Daten zu erstellen.
+ **Symmetrischer 256-Bit-AES-Root-Schlüssel** Ein Root-Schlüssel verschlüsselt den Envelope-Schlüssel. Sie übergeben den Root-Schlüssel an Ihre Instance der Klasse `AmazonS3EncryptionClient`. Speichern Sie diesen Schlüssel, da Sie diesen benötigen, um Daten zu Amazon Redshift zu kopieren.
+ **Objektmetadaten zum Speichern des verschlüsselten Envelope-Schlüssels** Standardmäßig speichert Amazon S3 den Envelope-Schlüssel in Form von Objektmetadaten für die `AmazonS3EncryptionClient`-Klasse. Der in Form von Objektmetadaten gespeicherte verschlüsselte Envelope-Schlüssel wird während des Entschlüsselungsprozesses verwendet. 

**Anmerkung**  
Wenn Sie während der ersten Verwendung der Verschlüsselungs-API eine Verschlüsselungsfehlermeldung erhalten, enthält Ihre Version des JDK möglicherweise eine Java Cryptography Extension (JCE)-Jurisdiktionsrichtlinie, die die maximale Schlüssellänge für Verschlüsselungs- und Entschlüsselungstransformationen auf 128 Bits begrenzt. Informationen zur Behebung dieses Problems finden Sie [unter Spezifizierung der clientseitigen Verschlüsselung mithilfe des AWS SDK for Java](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryptionUpload.html) im *Amazon Simple Storage Service-Benutzerhandbuch*. 

Weitere Informationen zum Laden von clientseitig verschlüsselten Dateien in Ihre Amazon-Redshift-Tabellen unter Verwendung des Befehls COPY finden Sie unter [Laden verschlüsselter Datendateien aus Amazon S3](c_loading-encrypted-files.md).

## Beispiel: Hochladen von clientseitig verschlüsselten Daten
<a name="client-side-encryption-example"></a>

Ein Beispiel für die Verwendung des AWS SDK for Java zum Hochladen von clientseitig verschlüsselten Daten finden Sie unter [Schützen von Daten mit clientseitiger Verschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/encrypt-client-side-symmetric-master-key.html) im *Amazon Simple Storage* Service-Benutzerhandbuch. 

In der zweiten Option werden die Entscheidungen gezeigt, die Sie während der clientseitigen Verschlüsselung treffen müssen, damit die Daten in Amazon Redshift geladen werden können. Insbesondere zeigt das Beispiel die Verwendung von Objektmetadaten für das Speichern des verschlüsselten Envelope-Schlüssels und die Verwendung eines symmetrischen 256-Bit-AES-Root-Schlüssels. 

Dieses Beispiel enthält Beispielcode, der das AWS SDK for Java verwendet, um einen symmetrischen 256-Bit-AES-Stammschlüssel zu erstellen und ihn in einer Datei zu speichern. Anschließend wird mittels eines S3-Verschlüsselungsclients, der die Beispieldaten zunächst clientseitig verschlüsselt, ein Objekt zu Amazon S3 hochgeladen. Das Beispiel zeigt auch den Download des Objekts und die Überprüfung, ob die Daten identisch ist.

# Überprüfen, ob sich die korrekten Dateien in Ihrem Bucket befinden
<a name="verifying-that-correct-files-are-present"></a>

Nachdem Sie Ihre Dateien zu Ihrem Amazon S3 Bucket hochgeladen haben, sollten Sie die Inhalte des Buckets auflisten, um zu überprüfen, ob alle korrekten Dateien vorhanden sind und keine unerwünschten Dateien vorhanden sind. Wenn beispielsweise der Bucket `amzn-s3-demo-bucket` eine Datei namens `venue.txt.back` enthält, wird diese Datei (vielleicht unbeabsichtigt) durch den folgenden Befehl geladen:

```
COPY venue FROM 's3://amzn-s3-demo-bucket/venue' … ;
```

Wenn Sie spezifisch kontrollieren möchten, welche Dateien geladen werden, können Sie eine Manifestdatei verwenden, um die Datendateien explizit aufzulisten. Weitere Informationen zur Verwendung einer Manifestdatei finden Sie in der Beschreibung der [copy_from_s3_manifest_file](copy-parameters-data-source-s3.md#copy-manifest-file)-Option für den COPY-Befehl und unter [Verwenden eines Manifests für die Angabe von Datendateien](r_COPY_command_examples.md#copy-command-examples-manifest) in den Beispielen für COPY. 

Weitere Informationen zum Auflisten der Inhalte des Buckets finden Sie unter [Listing Object Keys](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html) (Auflisten von Objektschlüsseln) im *Amazon-S3-Entwicklerhandbuch*.

# 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;
```