

 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.

# UNLOAD-Beispiele
<a name="r_UNLOAD_command_examples"></a>

Diese Beispiele veranschaulichen verschiedene Parameter des UNLOAD-Befehls. Der TICKIT-Beispieldatensatz wird in vielen Beispielen verwendet. Weitere Informationen finden Sie unter [Beispieldatenbank](c_sampledb.md).

**Anmerkung**  
In den folgenden Beispielen werden aus Gründen der Lesbarkeit Zeilenumbrüche verwendet. Verwenden Sie in Ihrer Zeichenfolge *credentials-args* keine Zeilenumbrüche oder Leerzeichen.

## Entladen von VENUE in eine Datei, die das Pipe-Zeichen als Trennzeichen enthält (Standardtrennzeichen)
<a name="unload-examples-venue"></a>

Im folgenden Beispiel werden die Tabelle VENUE entladen und die Daten in geschrieben `s3://amzn-s3-demo-bucket/unload/`: 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

Standardmäßig schreibt UNLOAD eine oder mehrere Dateien pro Slice. Unter Annahme eines Clusters mit zwei Knoten und zwei Slices pro Knoten werden im vorherigen Beispiel in die folgenden Dateien erstellt `amzn-s3-demo-bucket`:

```
unload/0000_part_00
unload/0001_part_00
unload/0002_part_00
unload/0003_part_00
```

Um die Ausgabedateien besser zu differenzieren, können Sie für den Speicherort ein Präfix verwenden. Im folgenden Beispiel werden die Tabelle VENUE entladen und die Daten in `s3://amzn-s3-demo-bucket/unload/venue_pipe_` geschrieben: 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload/venue_pipe_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

Das Ergebnis dieser vier Dateien ist der Ordner `unload`, erneut unter Annahme von vier Slices.

```
venue_pipe_0000_part_00
venue_pipe_0001_part_00
venue_pipe_0002_part_00
venue_pipe_0003_part_00
```

## Tabelle LINEITEM in partitionierte Parquet-Dateien entladen
<a name="unload-examples-partitioned-parquet"></a>

Im folgenden Beispiel wird die Tabelle LINEITEM im Parquet-Format entladen, das durch die `l_shipdate`-Spalte unterteilt wird. 

```
unload ('select * from lineitem')
to 's3://amzn-s3-demo-bucket/lineitem/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
PARQUET
PARTITION BY (l_shipdate);
```

Unter der Annahme von vier Slices werden die resultierenden Parquet-Dateien dynamisch in verschiedene Ordner aufgeteilt. 

```
s3://amzn-s3-demo-bucket/lineitem/l_shipdate=1992-01-02/0000_part_00.parquet
                                             0001_part_00.parquet
                                             0002_part_00.parquet
                                             0003_part_00.parquet
s3://amzn-s3-demo-bucket/lineitem/l_shipdate=1992-01-03/0000_part_00.parquet
                                             0001_part_00.parquet
                                             0002_part_00.parquet
                                             0003_part_00.parquet
s3://amzn-s3-demo-bucket/lineitem/l_shipdate=1992-01-04/0000_part_00.parquet
                                             0001_part_00.parquet
                                             0002_part_00.parquet
                                             0003_part_00.parquet
...
```

**Anmerkung**  
In einigen Fällen verwendet der UNLOAD-Befehl die INCLUDE-Option, wie in der folgenden SQL-Anweisung gezeigt.   

```
unload ('select * from lineitem')
to 's3://amzn-s3-demo-bucket/lineitem/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
PARQUET
PARTITION BY (l_shipdate) INCLUDE;
```
In diesen Fällen befindet sich die `l_shipdate`-Spalte auch in den Daten in den Parquet-Dateien. Andernfalls befinden sich die `l_shipdate`-Spaltendaten nicht in den Parquet-Dateien.

## Entladen der VENUE-Tabelle in eine JSON-Datei
<a name="unload-examples-json"></a>

Im folgenden Beispiel wird die VENUE-Tabelle entladen und die Daten im JSON-Format in `s3://amzn-s3-demo-bucket/unload/` geschrieben.

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
JSON;
```

Im Folgenden sind die Beispielzeilen der VENUE-Tabelle aufgeführt.

```
venueid | venuename                  | venuecity       | venuestate | venueseats
--------+----------------------------+-----------------+------------+-----------
      1 | Pinewood Racetrack         | Akron           | OH         | 0
      2 | Columbus "Crew" Stadium    | Columbus        | OH         | 0
      4 | Community, Ballpark, Arena | Kansas City     | KS         | 0
```

Nach dem Entladen in JSON sieht das Format der Datei in etwa wie folgt aus.

```
{"venueid":1,"venuename":"Pinewood Racetrack","venuecity":"Akron","venuestate":"OH","venueseats":0}
{"venueid":2,"venuename":"Columbus \"Crew\" Stadium ","venuecity":"Columbus","venuestate":"OH","venueseats":0}
{"venueid":4,"venuename":"Community, Ballpark, Arena","venuecity":"Kansas City","venuestate":"KS","venueseats":0}
```

## Entladen von VENUE in eine CSV-Datei
<a name="unload-examples-csv"></a>

Im folgenden Beispiel wird die VENUE-Tabelle entladen und die Daten im CSV-Format in geschrieben `s3://amzn-s3-demo-bucket/unload/`.

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
CSV;
```

Angenommen, die Tabelle VENUE enthält die folgenden Zeilen.

```
venueid | venuename                  | venuecity       | venuestate | venueseats
--------+----------------------------+-----------------+------------+-----------
      1 | Pinewood Racetrack         | Akron           | OH         | 0
      2 | Columbus "Crew" Stadium    | Columbus        | OH         | 0
      4 | Community, Ballpark, Arena | Kansas City     | KS         | 0
```

Die Entladedatei sieht ähnlich wie folgt aus.

```
1,Pinewood Racetrack,Akron,OH,0
2,"Columbus ""Crew"" Stadium",Columbus,OH,0
4,"Community, Ballpark, Arena",Kansas City,KS,0
```

## Entladen von VENUE in eine CSV-Datei mit einem Trennzeichen
<a name="unload-examples-csv-delimiter"></a>

Im folgenden Beispiel wird die VENUE-Tabelle entladen und die Daten im CSV-Format mit dem Pipe-Zeichen (\$1) als Trennzeichen geschrieben. Die entladene Datei wird in `s3://amzn-s3-demo-bucket/unload/` geschrieben. Die VENUE-Tabelle in diesem Beispiel enthält das Pipe-Zeichen im Wert der ersten Zeile (`Pinewood Race|track`). Es tut dies, um zu zeigen, dass der Wert im Ergebnis in doppelte Anführungszeichen eingeschlossen ist. Ein doppeltes Anführungszeichen wird durch ein doppeltes Anführungszeichen maskiert, und das gesamte Feld ist in doppelte Anführungszeichen eingeschlossen. 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
CSV DELIMITER AS '|';
```

Angenommen, die Tabelle VENUE enthält die folgenden Zeilen.

```
venueid | venuename                  | venuecity       | venuestate | venueseats
--------+----------------------------+-----------------+------------+-------------
      1 | Pinewood Race|track        | Akron           | OH         | 0
      2 | Columbus "Crew" Stadium    | Columbus        | OH         | 0
      4 | Community, Ballpark, Arena | Kansas City     | KS         | 0
```

Die Entladedatei sieht ähnlich wie folgt aus.

```
1|"Pinewood Race|track"|Akron|OH|0
2|"Columbus ""Crew"" Stadium"|Columbus|OH|0
4|Community, Ballpark, Arena|Kansas City|KS|0
```

## Entladen von VENUE mit einer Manifestdatei
<a name="unload-examples-manifest"></a>

Um eine Manifestdatei zu erstellen, schließen Sie die Option MANIFEST ein. Im folgenden Beispiel werden die Tabelle VENUE entladen und eine Manifestdatei zusammen mit den Datendateien zu s3://amzn-s3-demo-bucket/venue\$1pipe\$1 geschrieben: 

**Wichtig**  
Wenn Sie Dateien mithilfe der Option MANIFEST entladen, sollten Sie die Option MANIFEST mit dem Befehl COPY verwenden, wenn Sie die Dateien laden. Wenn Sie dasselbe Präfix verwenden, um die Dateien zu laden, und die Option MANIFEST nicht angeben, schlägt der Befehl COPY fehl, da er annimmt, dass es sich bei der Manifestdatei um eine Datendatei handelt.

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest;
```

Das Ergebnis sind diese fünf Dateien:

```
s3://amzn-s3-demo-bucket/venue_pipe_0000_part_00
s3://amzn-s3-demo-bucket/venue_pipe_0001_part_00
s3://amzn-s3-demo-bucket/venue_pipe_0002_part_00
s3://amzn-s3-demo-bucket/venue_pipe_0003_part_00
s3://amzn-s3-demo-bucket/venue_pipe_manifest
```

Im Folgenden wird der Inhalt der Manifestdatei gezeigt. 

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/tickit/venue_0000_part_00"},
    {"url":"s3://amzn-s3-demo-bucket/tickit/venue_0001_part_00"},
    {"url":"s3://amzn-s3-demo-bucket/tickit/venue_0002_part_00"},
    {"url":"s3://amzn-s3-demo-bucket/tickit/venue_0003_part_00"}
  ]
}
```

## Entladen von VENUE mit MANIFEST VERBOSE
<a name="unload-examples-manifest-verbose"></a>

Bei Angabe der Option MANIFEST VERBOSE enthält die Manifestdatei die folgenden Abschnitte: 
+ Im Abschnitt `entries` werden der Amazon S3-Pfad, die Dateigröße und die Zeilenanzahl für die einzelnen Dateien aufgeführt. 
+ Im Abschnitt `schema` werden die Spaltennamen, Datentypen und die Dimension für die einzelnen Spalten aufgeführt. 
+ Im Abschnitt `meta` wird die gesamte Dateigröße und die Zeilenanzahl für alle Dateien aufgeführt. 

Im folgenden Beispiel wird die Tabelle VENUE mithilfe der Option MANIFEST VERBOSE entladen. 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload_venue_folder/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest verbose;
```

Im Folgenden wird der Inhalt der Manifestdatei gezeigt.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/venue_pipe_0000_part_00", "meta": { "content_length": 32295, "record_count": 10 }},
    {"url":"s3://amzn-s3-demo-bucket/venue_pipe_0001_part_00", "meta": { "content_length": 32771, "record_count": 20 }},
    {"url":"s3://amzn-s3-demo-bucket/venue_pipe_0002_part_00", "meta": { "content_length": 32302, "record_count": 10 }},
    {"url":"s3://amzn-s3-demo-bucket/venue_pipe_0003_part_00", "meta": { "content_length": 31810, "record_count": 15 }}
  ],
  "schema": {
    "elements": [
      {"name": "venueid", "type": { "base": "integer" }},
      {"name": "venuename", "type": { "base": "character varying", 25 }},
      {"name": "venuecity", "type": { "base": "character varying", 25 }},
      {"name": "venuestate", "type": { "base": "character varying", 25 }},
      {"name": "venueseats", "type": { "base": "character varying", 25 }}
    ]
  },
  "meta": {
    "content_length": 129178,
    "record_count": 55
  },
  "author": {
    "name": "Amazon Redshift",
    "version": "1.0.0"
  }
}
```

## Entladen von VENUE mit einer Kopfzeile
<a name="unload-examples-header"></a>

Das folgende Beispiel entlädt VENUE mit einer Kopfzeile.

```
unload ('select * from venue where venueseats > 75000')
to 's3://amzn-s3-demo-bucket/unload/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
header
parallel off;
```

Nachfolgend sehen Sie den Inhalt der Ausgabedatei mit einer Kopfzeile.

```
venueid|venuename|venuecity|venuestate|venueseats
6|New York Giants Stadium|East Rutherford|NJ|80242
78|INVESCO Field|Denver|CO|76125
83|FedExField|Landover|MD|91704
79|Arrowhead Stadium|Kansas City|MO|79451
```

## Entladen von VENUE zu kleineren Dateien
<a name="unload-examples-maxfilesize"></a>

Die maximal zulässige Dateigröße ist standardmäßig 6,2 GB. Wenn die Größe der Datei mit den entladenen Daten 6,2 GB überschreitet, erstellt UNLOAD eine neue Datei für jedes Datensegment von 6,2 GB. Um kleinere Dateien zu erstellen, verwenden Sie den Parameter MAXFILESIZE. Wenn die Größe der Daten im vorherigen Beispiel ist 20 GB betragen würde, würde der folgende UNLOAD-Befehl 20 Dateien erstellen, jede mit einer Größe von 1 GB.

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
maxfilesize 1 gb;
```

## Serielles Entladen von VENUE
<a name="unload-examples-serial"></a>

Um eine serielle Entladung auszuführen, geben Sie PARALLEL OFF an. UNLOAD schreibt anschließend in jeweils eine einzelne Datei bis zu maximal 6,2 GB pro Datei. 

Im folgenden Beispiel werden die Tabelle VENUE entladen und die Daten seriell in geschrieben `s3://amzn-s3-demo-bucket/unload/`. 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload/venue_serial_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
parallel off;
```

Das Ergebnis ist eine einzelne Datei namens venue\$1serial\$1000. 

Wenn die Größe der Datei mit den entladenen Daten 6,2 GB überschreitet, erstellt UNLOAD eine neue Datei für jedes Datensegment von 6,2 GB. Im folgenden Beispiel werden die Tabelle LINEORDER entladen und die Daten seriell in geschrieben `s3://amzn-s3-demo-bucket/unload/`. 

```
unload ('select * from lineorder')
to 's3://amzn-s3-demo-bucket/unload/lineorder_serial_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
parallel off gzip;
```

Das Ergebnis ist die folgende Reihe von Dateien.

```
lineorder_serial_0000.gz
lineorder_serial_0001.gz
lineorder_serial_0002.gz
lineorder_serial_0003.gz
```

Um die Ausgabedateien besser zu differenzieren, können Sie für den Speicherort ein Präfix verwenden. Im folgenden Beispiel werden die Tabelle VENUE entladen und die Daten in `s3://amzn-s3-demo-bucket/venue_pipe_` geschrieben: 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/unload/venue_pipe_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

Das Ergebnis dieser vier Dateien ist der Ordner `unload`, erneut unter Annahme von vier Slices.

```
venue_pipe_0000_part_00
venue_pipe_0001_part_00
venue_pipe_0002_part_00
venue_pipe_0003_part_00
```

## Laden von VENUE aus entladenen Dateien
<a name="unload-examples-load"></a>

Um eine Tabelle aus einem Satz entladener Dateien zu laden, kehren Sie den Befehl einfach unter Verwendung eines COPY-Befehls um. Im folgenden Beispiel werden eine neue Tabelle namens LOADVENUE erstellt und diese Tabelle aus den im vorherigen Beispiel erstellten Datendateien geladen.

```
create table loadvenue (like venue);

copy loadvenue from 's3://amzn-s3-demo-bucket/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

Wenn Sie die Option MANIFEST verwendet haben, um mit den entladenen Dateien eine Manifestdatei zu erstellen, können Sie die Daten unter Verwendung derselben Manifestdatei laden. Führen Sie dazu einen COPY-Befehl mit der Option MANIFEST aus. Im folgenden Beispiel werden Daten unter Verwendung einer Manifestdatei geladen.

```
copy loadvenue
from 's3://amzn-s3-demo-bucket/venue_pipe_manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest;
```

## Entladen von VENUE zu verschlüsselten Dateien
<a name="unload-examples-unload-encrypted"></a>

Im folgenden Beispiel wird die VENUE-Tabelle mithilfe eines Schlüssels in eine Reihe verschlüsselter Dateien entladen. AWS KMS Wenn Sie eine Manifestdatei mit der Option ENCRYPTED angeben, wird die Manifestdatei ebenfalls verschlüsselt. Weitere Informationen finden Sie unter [Entladen verschlüsselter Datendateien](t_unloading_encrypted_files.md).

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/venue_encrypt_kms'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
kms_key_id '1234abcd-12ab-34cd-56ef-1234567890ab'
manifest
encrypted;
```

Im folgenden Beispiel wird die Tabelle VENUE zu einem Satz verschlüsselter Dateien unter Verwendung eines symmetrischen Root-Schlüssels entladen. 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/venue_encrypt_cmk'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
master_symmetric_key 'EXAMPLEMASTERKEYtkbjk/OpCwtYSx/M4/t7DMCDIK722'
encrypted;
```

## Laden von VENUE aus verschlüsselten Dateien
<a name="unload-examples-load-encrypted"></a>

Um Tabellen aus einem Satz von Dateien zu laden, die unter Verwendung von UNLOAD mit der Option ENCRYPT erstellt wurden, kehren Sie den Prozess einfach unter Verwendung eines COPY-Befehls um. Verwenden Sie die Option ENCRYPTED mit diesem Befehl und geben Sie denselben symmetrischen Root-Schlüssel an, der für den UNLOAD-Befehl verwendet wurde. Im folgenden Beispiel wird die Tabelle LOADVENUE aus den im vorherigen Beispiel erstellten verschlüsselten Datendateien geladen.

```
create table loadvenue (like venue);

copy loadvenue
from 's3://amzn-s3-demo-bucket/venue_encrypt_manifest'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
master_symmetric_key 'EXAMPLEMASTERKEYtkbjk/OpCwtYSx/M4/t7DMCDIK722'
manifest
encrypted;
```

## Entladen von VENUE zu einer Datei mit Tabulatoren als Trennzeichen
<a name="unload-examples-venue-tab"></a>

```
unload ('select venueid, venuename, venueseats from venue')
to 's3://amzn-s3-demo-bucket/venue_tab_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
delimiter as '\t';
```

Die Ausgabedatendateien sehen wie folgt aus: 

```
1	Toyota Park	Bridgeview	IL	0
2	Columbus Crew Stadium	Columbus	OH	0
3	RFK Stadium	Washington	DC	0
4	CommunityAmerica Ballpark	Kansas City	KS	0
5	Gillette Stadium	Foxborough	MA	68756
...
```

## Entladen von VENUE zu einer Datei mit festen Spaltenbreiten
<a name="unload-venue-fixed-width"></a>

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/venue_fw_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
fixedwidth as 'venueid:3,venuename:39,venuecity:16,venuestate:2,venueseats:6';
```

Die Ausgabedatendateien sehen wie folgt aus. 

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

## Entladen von VENUE zu einem Satz von GZIP-komprimierten Dateien mit Tabulatoren als Trennzeichen
<a name="unload-examples-venue-gzip"></a>

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/venue_tab_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
delimiter as '\t'
gzip;
```

## Entladen von VENUE in eine GZIP-komprimierte Textdatei
<a name="unload-examples-venue-extension-gzip"></a>

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/venue_tab_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
extension 'txt.gz'
gzip;
```

## Entladen von Daten, die ein Trennzeichen enthalten
<a name="unload-examples-delimiter"></a>

In diesem Beispiel wird die Option ADDQUOTES verwendet, um durch Komma getrennte Daten zu entladen, in denen einige der tatsächlichen Datenfelder ein Komma enthalten.

Erstellen Sie zunächst eine Tabelle, die Anführungszeichen enthält.

```
create table location (id int, location char(64));

insert into location values (1,'Phoenix, AZ'),(2,'San Diego, CA'),(3,'Chicago, IL');
```

Entladen Sie die Daten anschließend unter Verwendung der Option ADDQUOTES.

```
unload ('select id, location from location')
to 's3://amzn-s3-demo-bucket/location_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
delimiter ',' addquotes;
```

Die entladenen Daten sehen wie folgt aus: 

```
1,"Phoenix, AZ"
2,"San Diego, CA"
3,"Chicago, IL"
...
```

## Entladen der Ergebnisse einer Join-Abfrage
<a name="unload-examples-join"></a>

Im folgenden Beispiel werden die Ergebnisse einer Join-Abfrage entladen, die eine Fensterfunktion enthält. 

```
unload ('select venuecity, venuestate, caldate, pricepaid,
sum(pricepaid) over(partition by venuecity, venuestate
order by caldate rows between 3 preceding and 3 following) as winsum
from sales join date on sales.dateid=date.dateid
join event on event.eventid=sales.eventid
join venue on event.venueid=venue.venueid
order by 1,2')
to 's3://amzn-s3-demo-bucket/tickit/winsum'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

Die Ausgabedateien sehen wie folgt aus: 

```
Atlanta|GA|2008-01-04|363.00|1362.00
Atlanta|GA|2008-01-05|233.00|2030.00
Atlanta|GA|2008-01-06|310.00|3135.00
Atlanta|GA|2008-01-08|166.00|8338.00
Atlanta|GA|2008-01-11|268.00|7630.00
...
```

## Entladen unter Verwendung von NULL AS
<a name="unload-examples-null-as"></a>

UNLOAD gibt Null-Werte standardmäßig als leere Zeichenfolgen zurück. Die folgenden Beispiele zeigen, wie NULL AS verwendet wird, um Null-Werte durch Textzeichenfolgen zu ersetzen.

Hierzu fügen wir der Tabelle VENUE einige Null-Werte hinzu.

```
update venue set venuestate = NULL
where venuecity = 'Cleveland';
```

Wählen Sie aus VENUE aus, wobei VENUESTATE null ist, um zu überprüfen, ob die Spalten NULL enthalten.

```
select * from venue where venuestate is null;

 venueid |        venuename         | venuecity | venuestate | venueseats
---------+--------------------------+-----------+------------+------------
      22 | Quicken Loans Arena      | Cleveland |            |          0
     101 | Progressive Field        | Cleveland |            |      43345
      72 | Cleveland Browns Stadium | Cleveland |            |      73200
```

Entladen Sie nun die Tabelle VENUE unter Verwendung der Option NULL AS, um Null-Werte durch die Zeichenfolge zu ersetzen. '`fred`'. 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/nulls/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
null as 'fred';
```

Das folgende Beispiel aus der entladenen Datei zeigt, dass Null-Werte durch ersetzt wurden `fred`. Es stellt sich heraus, dass einige Werte für VENUESEATS ebenfalls null waren und durch ersetzt wurden `fred`. Auch wenn es sich beim Datentyp für VENUESEATS um Ganzzahl handelt, wandelt UNLOAD die Werte in den entladenen Dateien in Text um. Anschließend wandelt COPY sie wieder in Ganzzahlen um. Wenn Sie Daten zu einer Date mit festen Spaltenbreiten entladen, darf die NULL AS-Zeichenfolge nicht länger als die Feldbreite sein.

```
248|Charles Playhouse|Boston|MA|0
251|Paris Hotel|Las Vegas|NV|fred
258|Tropicana Hotel|Las Vegas|NV|fred
300|Kennedy Center Opera House|Washington|DC|0
306|Lyric Opera House|Baltimore|MD|0
308|Metropolitan Opera|New York City|NY|0
  5|Gillette Stadium|Foxborough|MA|5
 22|Quicken Loans Arena|Cleveland|fred|0
101|Progressive Field|Cleveland|fred|43345
...
```

Um eine Tabelle aus den entladenen Dateien zu laden, verwenden Sie einen COPY-Befehl mit derselben NULL AS-Option. 

**Anmerkung**  
Wenn Sie versuchen, Null-Werte in eine Spalte zu laden, die als NOT NULL definiert ist, schlägt der Befehl COPY fehl.

```
create table loadvenuenulls (like venue);

copy loadvenuenulls from 's3://amzn-s3-demo-bucket/nulls/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
null as 'fred';
```

Um zu überprüfen, ob die Spalten Null-Werte enthalten und nicht nur leere Zeichenfolgen, wählen Sie aus LOADVENUENULLS aus und filtern nach Null-Werten.

```
select * from loadvenuenulls where venuestate is null or venueseats is null;

 venueid |        venuename         | venuecity | venuestate | venueseats
---------+--------------------------+-----------+------------+------------
      72 | Cleveland Browns Stadium | Cleveland |            |      73200
     253 | Mirage Hotel             | Las Vegas | NV         |
     255 | Venetian Hotel           | Las Vegas | NV         |
      22 | Quicken Loans Arena      | Cleveland |            |          0
     101 | Progressive Field        | Cleveland |            |      43345
     251 | Paris Hotel              | Las Vegas | NV         |

...
```

Sie können eine Tabelle entladen, die Null-Werte enthält, indem Sie das NULL AS-Standardverhalten verwenden und anschließend die Daten unter Verwendung des NULL AS-Standardverhaltens wieder in eine Tabelle kopieren. Alle nicht numerischen Felder in der Zieltabelle werden jedoch leere Zeichenfolgen und keine Null-Werte enthalten. Standardmäßig wandelt UNLOAD Null-Werte in leere Zeichenfolgen um (Leerzeichen oder Null-Länge). COPY wandelt leere Zeichenfolgen für numerische Spalten in NULL um, fügt in nichtnumerische Spalten jedoch leere Zeichenfolgen ein. Im folgenden Beispiel wird gezeigt, wie Sie eine UNLOAD-Operation gefolgt von einer COPY-Operation unter Verwendung des NULL AS-Standardverhaltens ausführen. 

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/nulls/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' allowoverwrite;

truncate loadvenuenulls;
copy loadvenuenulls from 's3://amzn-s3-demo-bucket/nulls/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
```

In diesem Fall enthalten nur die Zeilen mit VENUESEATS Null-Werte, wenn Sie nach Null-Werten filtern. Wenn VENUESTATE in der Tabelle (VENUE) Null-Werte enthält, enthält VENUESTATE in der Zieltabelle (LOADVENUENULLS) leere Zeichenfolgen.

```
select * from loadvenuenulls where venuestate is null or venueseats is null;

 venueid |        venuename         | venuecity | venuestate | venueseats
---------+--------------------------+-----------+------------+------------
     253 | Mirage Hotel             | Las Vegas | NV         |
     255 | Venetian Hotel           | Las Vegas | NV         |
     251 | Paris Hotel              | Las Vegas | NV         |
...
```

Um leere Zeichenfolgen in nichtnumerische Spalten als NULL zu laden, schließen Sie die Optionen EMPTYASNULL oder BLANKSASNULL ein. Sie können beide Optionen gleichzeitig verwenden.

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/nulls/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' allowoverwrite;

truncate loadvenuenulls;
copy loadvenuenulls from 's3://amzn-s3-demo-bucket/nulls/'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' EMPTYASNULL;
```

Um zu überprüfen, ob die Spalten NULL enthalten und nicht nur Leerzeichen oder leere Zeichenfolgen, wählen Sie aus LOADVENUENULLS aus und filtern nach Null-Werten.

```
select * from loadvenuenulls where venuestate is null or venueseats is null;

 venueid |        venuename         | venuecity | venuestate | venueseats
---------+--------------------------+-----------+------------+------------
      72 | Cleveland Browns Stadium | Cleveland |            |      73200
     253 | Mirage Hotel             | Las Vegas | NV         |
     255 | Venetian Hotel           | Las Vegas | NV         |
      22 | Quicken Loans Arena      | Cleveland |            |          0
     101 | Progressive Field        | Cleveland |            |      43345
     251 | Paris Hotel              | Las Vegas | NV         |
     ...
```

## Entladen mit dem Parameter ALLOWOVERWRITE
<a name="unload-examples-allowoverwrite"></a>

Standardmäßig überschreibt UNLOAD keine Dateien, die im Ziel-Bucket vorhanden sind. Wenn Sie beispielsweise dieselbe UNLOAD-Anweisung zweimal ausführen, ohne die Dateien im Ziel-Bucket zu ändern, schlägt die zweite UNLOAD-Anweisung fehl. Um die vorhandenen Dateien, einschließlich der Manifestdatei, zu überschreiben, geben Sie die Option ALLOWOVERWRITE an.

```
unload ('select * from venue')
to 's3://amzn-s3-demo-bucket/venue_pipe_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest allowoverwrite;
```

## Entladen der EVENT-Tabelle mithilfe der Parameter PARALLEL und MANIFEST
<a name="unload-examples-manifest-parallel"></a>

Sie können eine Tabelle mit UNLOAD parallel entladen und eine Manifestdatei anlegen. Die Amazon-S3-Datendateien werden alle auf derselben Ebene erstellt und Namen werden mit dem Suffix des Musters `0000_part_00` versehen. Die Manifestdatei befindet sich auf derselben Ordnerebene wie die Datendateien und ist mit dem Suffixtext `manifest` versehen. Die folgende SQL-Anweisung entlädt die EVENT-Tabelle und erstellt Dateien mit dem Basisnamen `parallel`.

```
unload ('select * from mytickit1.event')
to 's3://amzn-s3-demo-bucket/parallel'
iam_role 'arn:aws:iam::123456789012:role/MyRedshiftRole'
parallel on
manifest;
```

Die Amazon-S3-Dateiliste sieht etwa wie folgt aus.

```
 Name                       Last modified                        Size                  
 parallel0000_part_00	-   August 2, 2023, 14:54:39 (UTC-07:00) 52.1 KB  
 parallel0001_part_00	-   August 2, 2023, 14:54:39 (UTC-07:00) 53.4 KB
 parallel0002_part_00	-   August 2, 2023, 14:54:39 (UTC-07:00) 52.1 KB
 parallel0003_part_00	-   August 2, 2023, 14:54:39 (UTC-07:00) 51.1 KB
 parallel0004_part_00	-   August 2, 2023, 14:54:39 (UTC-07:00) 54.6 KB
 parallel0005_part_00	-   August 2, 2023, 14:54:39 (UTC-07:00) 53.4 KB
 parallel0006_part_00	-   August 2, 2023, 14:54:39 (UTC-07:00) 54.1 KB
 parallel0007_part_00	-   August 2, 2023, 14:54:39 (UTC-07:00) 55.9 KB
 parallelmanifest       -   August 2, 2023, 14:54:39 (UTC-07:00) 886.0 B
```

Der Inhalt der Datei `parallelmanifest` ähnelt dem folgenden Beispiel.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/parallel0000_part_00", "meta": { "content_length": 53316 }},
    {"url":"s3://amzn-s3-demo-bucket/parallel0001_part_00", "meta": { "content_length": 54704 }},
    {"url":"s3://amzn-s3-demo-bucket/parallel0002_part_00", "meta": { "content_length": 53326 }},
    {"url":"s3://amzn-s3-demo-bucket/parallel0003_part_00", "meta": { "content_length": 52356 }},
    {"url":"s3://amzn-s3-demo-bucket/parallel0004_part_00", "meta": { "content_length": 55933 }},
    {"url":"s3://amzn-s3-demo-bucket/parallel0005_part_00", "meta": { "content_length": 54648 }},
    {"url":"s3://amzn-s3-demo-bucket/parallel0006_part_00", "meta": { "content_length": 55436 }},
    {"url":"s3://amzn-s3-demo-bucket/parallel0007_part_00", "meta": { "content_length": 57272 }}
  ]
}
```

## Entladen der EVENT-Tabelle mithilfe der Parameter PARALLEL OFF und MANIFEST
<a name="unload-examples-manifest-serial"></a>

Sie können eine Tabelle mit UNLOAD seriell entladen (PARALLEL OFF) und eine Manifestdatei anlegen. Die Amazon-S3-Datendateien werden alle auf derselben Ebene erstellt und Namen werden mit dem Suffix des Musters `0000` versehen. Die Manifestdatei befindet sich auf derselben Ordnerebene wie die Datendateien und ist mit dem Suffixtext `manifest` versehen.

```
unload ('select * from mytickit1.event')
to 's3://amzn-s3-demo-bucket/serial'
iam_role 'arn:aws:iam::123456789012:role/MyRedshiftRole'
parallel off
manifest;
```

Die Amazon-S3-Dateiliste sieht etwa wie folgt aus.

```
 Name                       Last modified                        Size                  
 serial0000             -   August 2, 2023, 15:54:39 (UTC-07:00) 426.7 KB  
 serialmanifest         -   August 2, 2023, 15:54:39 (UTC-07:00) 120.0 B
```

Der Inhalt der Datei `serialmanifest` ähnelt dem folgenden Beispiel.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/serial000", "meta": { "content_length": 436991 }}
  ]
}
```

## Entladen der EVENT-Tabelle mithilfe der Parameter PARTITION BY und MANIFEST
<a name="unload-examples-manifest-partition"></a>

Sie können eine Tabelle mit UNLOAD partitionsweise entladen und eine Manifestdatei anlegen. In Amazon S3 wird ein neuer Ordner mit untergeordneten Partitionsordnern erstellt und die Datendateien in den untergeordneten Ordnern haben ein Namensmuster ähnlich wie `0000_par_00`. Die Manifestdatei befindet sich auf derselben Ordnerebene wie die untergeordneten Ordner mit dem Namen `manifest`.

```
unload ('select * from mytickit1.event')
to 's3://amzn-s3-demo-bucket/partition'
iam_role 'arn:aws:iam::123456789012:role/MyRedshiftRole'
partition by (eventname)
manifest;
```

Die Amazon-S3-Dateiliste sieht etwa wie folgt aus.

```
 Name                   Type     Last modified                        Size                  
 partition           	Folder
```

Im Ordner `partition` befinden sich untergeordnete Ordner mit dem Partitionsnamen und der Manifestdatei. Im Folgenden sehen Sie das Ende der Liste der Ordner im Ordner `partition`, ähnlich wie folgt.

```
 Name                   Type      Last modified                        Size                  
 ...
 eventname=Zucchero/    Folder 
 eventname=Zumanity/    Folder 
 eventname=ZZ Top/      Folder  
 manifest          	    -	    August 2, 2023, 15:54:39 (UTC-07:00) 467.6 KB
```

Im Ordner `eventname=Zucchero/` befinden sich die Datendateien, ähnlich wie folgt.

```
 Name               Last modified                        Size                  
 0000_part_00	-   August 2, 2023, 15:59:19 (UTC-07:00) 70.0 B
 0001_part_00	-   August 2, 2023, 15:59:16 (UTC-07:00) 106.0 B
 0002_part_00	-   August 2, 2023, 15:59:15 (UTC-07:00) 70.0 B
 0004_part_00	-   August 2, 2023, 15:59:17 (UTC-07:00) 141.0 B
 0006_part_00	-   August 2, 2023, 15:59:16 (UTC-07:00) 35.0 B
 0007_part_00	-   August 2, 2023, 15:59:19 (UTC-07:00) 108.0 B
```

Das Ende der Datei `manifest` ähnelt dem folgenden Beispiel.

```
{
  "entries": [
    ...
    {"url":"s3://amzn-s3-demo-bucket/partition/eventname=Zucchero/007_part_00", "meta": { "content_length": 108 }},
    {"url":"s3://amzn-s3-demo-bucket/partition/eventname=Zumanity/007_part_00", "meta": { "content_length": 72 }}
  ]
}
```

## Entladen der EVENT-Tabelle mithilfe der Parameter MAXFILESIZE, ROWGROUPSIZE und MANIFEST
<a name="unload-examples-manifest-maxsize"></a>

Sie können eine Tabelle mit UNLOAD parallel entladen und eine Manifestdatei anlegen. Die Amazon-S3-Datendateien werden alle auf derselben Ebene erstellt und Namen werden mit dem Suffix des Musters `0000_part_00` versehen. Die generierten Parquet-Datendateien sind auf 256 MB und die Zeilengruppengröße ist auf 128 MB begrenzt. Die Manifestdatei befindet sich auf derselben Ordnerebene wie die Datendateien und ist mit dem Suffix `manifest` versehen.

```
unload ('select * from mytickit1.event')
to 's3://amzn-s3-demo-bucket/eventsize'
iam_role 'arn:aws:iam::123456789012:role/MyRedshiftRole'
maxfilesize 256 MB
rowgroupsize 128 MB
parallel on
parquet
manifest;
```

Die Amazon-S3-Dateiliste sieht etwa wie folgt aus.

```
 Name                            Type      Last modified                        Size 
 eventsize0000_part_00.parquet	parquet	August 2, 2023, 17:35:21 (UTC-07:00) 24.5 KB
 eventsize0001_part_00.parquet	parquet	August 2, 2023, 17:35:21 (UTC-07:00) 24.8 KB
 eventsize0002_part_00.parquet	parquet	August 2, 2023, 17:35:21 (UTC-07:00) 24.4 KB
 eventsize0003_part_00.parquet	parquet	August 2, 2023, 17:35:21 (UTC-07:00) 24.0 KB
 eventsize0004_part_00.parquet	parquet	August 2, 2023, 17:35:21 (UTC-07:00) 25.3 KB
 eventsize0005_part_00.parquet	parquet	August 2, 2023, 17:35:21 (UTC-07:00) 24.8 KB
 eventsize0006_part_00.parquet	parquet	August 2, 2023, 17:35:21 (UTC-07:00) 25.0 KB
 eventsize0007_part_00.parquet	parquet	August 2, 2023, 17:35:21 (UTC-07:00) 25.6 KB
 eventsizemanifest                 -       August 2, 2023, 17:35:21 (UTC-07:00) 958.0 B
```

Der Inhalt der Datei `eventsizemanifest` ähnelt dem folgenden Beispiel.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/eventsize0000_part_00.parquet", "meta": { "content_length": 25130 }},
    {"url":"s3://amzn-s3-demo-bucket/eventsize0001_part_00.parquet", "meta": { "content_length": 25428 }},
    {"url":"s3://amzn-s3-demo-bucket/eventsize0002_part_00.parquet", "meta": { "content_length": 25025 }},
    {"url":"s3://amzn-s3-demo-bucket/eventsize0003_part_00.parquet", "meta": { "content_length": 24554 }},
    {"url":"s3://amzn-s3-demo-bucket/eventsize0004_part_00.parquet", "meta": { "content_length": 25918 }},
    {"url":"s3://amzn-s3-demo-bucket/eventsize0005_part_00.parquet", "meta": { "content_length": 25362 }},
    {"url":"s3://amzn-s3-demo-bucket/eventsize0006_part_00.parquet", "meta": { "content_length": 25647 }},
    {"url":"s3://amzn-s3-demo-bucket/eventsize0007_part_00.parquet", "meta": { "content_length": 26256 }}
  ]
}
```